Работы Cron действительно предлагают только несколько основных преимуществ: планирование, выполнение и ведение журнала. Это все вещи, которые довольно легко повторить в приложении PHP ...
Шаг первый: Создание таблицы задач
Вы должны были бы хранить:
- Частота исполнение
- Что для выполнения (включая файл, обратный вызов, Eval-код и т.д.)
- Вычислить дату следующего запуска
- магазин предыдущего запуска d Атес
Шаг второй: Исполнение
У вас есть несколько вариантов, как на самом деле вызвать задачи:
- Позвоните в PHP-порожденных пустой GIF изображения на каждой странице прогона, который запускает код cron.
- Вызов скрипт AJAX, который запускает код CRON
- Называйте это нормально внутри приложения (может замедлить выполнение)
Независимо от того, как он начинает, это не вызвало бы реальный код хрон, который решает ли нет никаких задач для запуска, а какие - для запуска.
Шаг третий: Вход
Это одно должно быть довольно просто. Просто зарегистрируйте, что происходит во время задач, в файл, который вы можете прочитать после того, как убедиться, что он работает.
...
Перед запуском задания, нужно обновить предыдущую дату запуска, и после выполнения задачи, вы бы установить следующую дату выполнения, основываясь на своей частоте. Единственным недостатком этого метода является то, что когда никто не посещает сайты, никакие задания cron не будут выполняться до следующего посетителя.
Было бы интересно посмотреть, есть ли альтернатива, но, насколько мне известно, нет. – 2010-11-22 17:34:36
Zend Server (коммерческое издание) имеет очередь заданий, которая может выполнять повторяющиеся задачи. – Gordon 2010-11-23 08:16:09