Я настраиваю задание cron, которое выполняет скрипт page.php каждую минуту
Я хотел знать о параллелизме.
Сам скрипт занимает 15 минут, так как будет работать cron?
Lets take a time frame of 15 minutes, how many crons will run in that time? 1 or 15?
will cron runs till its completion or it can be interrupted?
Thanks.
Когда вы запускаете php-скрипт через cron, он будет работать до тех пор, пока не закончится или не истечет время выполнения.
Система всегда запускает новый экземпляр сценария независимо от того, работает ли последний сценарий или нет.
Если вы знаете, что скрипт выполняется долго, вы должны установить bash-скрипт, который проверяет, запущен ли скрипт, и запускать скрипт php только в том случае, если это не так.
Cron не обрабатывает параллелизм для вас — ваш скрипт должен это делать.
Оказывается, это довольно просто, поскольку есть тривиальная операция PHP, которая является атомарной: unlink()
,
Мы склонны использовать это так:
unlink()
в файле глобального флагаunlink()
в файле таймераtouch()
es файл глобального флага и завершает работу (это гарантирует, что один запуск cron запускается не более одного экземпляра)touch()
es файл глобального флага для перезапуска циклаТаким образом, прогоны cron, которые могут привести к параллелизму, не регистрируются.
это зависит от ваших запланированных задач / настроек cron. Вы можете настроить 15-кратный запуск вашего PHP-скрипта или запустить его после выполнения предыдущей работы.
Запланированное задание / cron может быть прервано им самим, внешним сигналом или также конфигурацией, которую вы сделали в запланированном задании / cron (остановите задание, если оно не было завершено в течение N минут …)
Надеюсь, это поможет 🙂