Любая альтернатива crontab, которую вы можете запустить, остановить, приостановить, возобновить, перепланировать через API в PHP? - PullRequest
1 голос
/ 04 июля 2011

Знаете ли вы альтернативу crontab, которую вы можете запускать, останавливать, приостанавливать, возобновлять, перепланировать через API в PHP?

Или это возможно в crontab?

У меня долго работаетPHP-скрипт, который выполняется cron.Мне пришлось бы приостановить cron (пока выполняется скрипт) или перепланировать его так, чтобы он не перезапускал мой php скрипт, пока он еще выполняется.После запуска скрипта я бы снова запустил cron.

Ответы [ 3 ]

4 голосов
/ 04 июля 2011

Возможно, вы захотите добавить логику lock в ваш PHP скрипт . Например. скрипт может проверить наличие файла блокировки и прервать его, если он есть. В противном случае он создаст этот файл и удалит его после того, как это будет сделано. Вы можете добавить дополнительную логику в ваш скрипт, например, проверить последний раз, когда он был запущен, и прервать его, если последний раз он выполнялся менее 1 часа назад.

Что касается задания cron, вы можете установить агрессивные тайминги (скажем, каждые 5 минут), исходя из предположения, что скрипт отвечает за проверку блокировок, время последнего запуска и т. Д.

2 голосов
/ 04 июля 2011

Вы можете использовать Fat Controller, который является демоном, написанным на C, который может запускать практически все, и повторять его.Он абстрагирует всю логику процесса, поэтому вы можете просто сохранить бизнес-логику в своем PHP-скрипте.Он полностью настраивается, включая настройку интервала между окончанием одного экземпляра и следующим запуском, более длительный интервал в случае ошибки, ведение журнала и, если необходимо, возможность параллельного запуска многих экземпляров сценария.

Боюсь, что сайт все еще немного прост, но есть много информации, и если вам нужна помощь или у вас есть вопросы, просто напишите мне - я был бы рад помочь!

http://www.4pmp.com/fatcontroller/

1 голос
/ 04 июля 2011

Вы должны попробовать очередь заданий.

Некоторые из них реализованы на чистом PHP (например, Zend Job Queue ) или устанавливают службу deamon, такую ​​как beanstalkd (С PHP-API, например Pheanstalk .)

...