mysql — cron задания, которые должны запускаться, а не в определенное время и не повторяться

Я новичок в работе cron, но привык к php. В моем приложении мне нужно запустить скрипт / событие, которое, если элемент размещен в базе данных MySQL, через час его статус изменится с частного на публичный, а через 24 часа его статус изменится с открытого на истекший. Я пытался использовать Mysql Schedule Events, он хорошо работает, но почти все общие хостинги не поддерживают его.

Мой предыдущий код:

                if($query==true){
mysqli_query($con,"CREATE EVENT ikiraka.act$id ON SCHEDULE AT (CURRENT_TIMESTAMP + INTERVAL 1 MINUTE) DO UPDATE `ibirakas` set `status`='public' WHERE `id`='$id'") or die(mysqli_error($con));
header("location:view-post.php?kiraka_id=$id");
}

Cron работа, с которой я акванирован:

10 * * * * /usr/bin/php /www/virtual/username/cron.php > /dev/null 2>&1

Вы можете видеть, что я пытаюсь сделать. Таким образом, задания cron обычно запускают определенную задачу в определенное время. Как я могу запустить задание, а не обычную рутину, и как настроить его на выполнение через 1 час, а другое через 24 часа для определенного элемента, а не для всего в дБ?
Ваша помощь ценится

0

Решение

Разве вы не можете выполнить всю работу в своем PHP-файле и базе данных MySQL?

  • Добавьте столбец к каждой строке сообщения, которая называется что-то вроде «time_added»
  • Запускай хрон каждый час.
  • Запросите базу данных и проверьте сообщения старше 24 часов, для которых не установлен правильный статус, чтобы сказать, что вы уже что-то сделали с ними через 24 часа.
  • Запросите базу данных и проверьте сообщения старше 1 часа, для которых не установлен статус, чтобы сказать, что вы уже что-то сделали с ними через 1 час или 24 часа.
  • Обновите статус постов.
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector