Задания Cron действительно предлагают только несколько основных преимуществ: планирование, выполнение и ведение журнала. Это все вещи, которые довольно легко воспроизвести в приложении PHP ...
Шаг первый: создание таблицы задач
Вам нужно хранить:
- Частота исполнения
- Что выполнить (включая файл, обратный вызов, eval-код и т. Д.)
- Рассчитать дату следующего запуска
- Сохранить предыдущие даты выполнения
Шаг второй: выполнение
У вас есть несколько вариантов того, как на самом деле запускать задачи:
- Вызывать сгенерированное PHP пустое GIF-изображение при каждом запуске страницы, которое вызывает код cron.
- Вызов скрипта AJAX, который запускает код cron
- Обычно вызывайте его внутри приложения (может замедлить выполнение)
Независимо от того, как он запускается, он запускает реальный код cron, который решает, есть ли какие-либо задачи для запуска и какие из них запускать.
Шаг третий: регистрация
Это должно быть довольно просто. Просто запишите, что происходит во время выполнения задач, в файл, который вы можете прочитать после, чтобы убедиться, что он работает.
...
Перед запуском задачи вы должны обновить предыдущую дату выполнения, а после запуска задачи вы должны установить следующую дату запуска, основываясь на ее частоте. Единственный недостаток этого метода заключается в том, что когда никто не посещает сайты, никакие задания cron не будут выполняться до следующего посетителя.