Если не по хронам, вам нужно, по крайней мере, что-то еще, чтобы раскручивать колеса один раз в день.
Нечто надежное, способное работать без присмотра в течение нескольких дней, месяцев, лет, до полной смерти веб-сервера.
Вы могли бы написать это. В php нет сомнений. Это будет процесс-демон на вашем веб-сервере.
Это должно быть запущено при каждом запуске.
Следует проверить, когда выполнялось последнее задание, и решить, нужно ли запускать другое.
Будучи ежедневным, он может спать () в течение нескольких часов (скажем, 1 или 2) и проверять, прошло ли время отправки, затем выполнить свою работу и вернуться в режим сна.
Его нельзя запустить внутри apache mod_php или через fastcgi.
Эти сценарии умирают через некоторое время. Скажи 30 секунд, как правило.
Он может быть запущен через программу веб-сервера, а не во время запуска, да, через system()
вызов nohup
в исполняемом файле командной строки php, что-то вроде:
<?php system('nohup php jobrunner.php'); ?>
Джобруннер должен проверить, не запущены ли уже другие его копии, и в этом случае покончить жизнь самоубийством. Он не должен запускаться или перезапускаться веб-пользователем без ввода пароля.
И, будучи разработанным заново с нуля, он может содержать новые ошибки и риски безопасности.
Итак, да, это можно сделать.
И, нет, я не думаю, что это должно быть сделано, если бы не гигантский проект, требующий очень индивидуальной обработки ежедневных заданий.
В целом, cron является безопасным, быстрым, обслуживаемым, известным системным администраторам, хорошо принятым, уже работает и доступен в дешевых хостинговых компаниях, которые не предоставляют командной строки или доступ к системе ().