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