Я настраиваю задание 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.
это зависит от ваших запланированных задач/настроек cron. Вы можете настроить запуск 15-кратного PHP-скрипта или запуск его при выполнении предыдущего задания.
Ваша запланированная задача /cron может быть прервана ею самостоятельно, внешним сигналом или также конфигурацией, которую вы сделали в запланированной задаче /cron (прекратите работу, если она не закончена в N минутах...)
Надеюсь, это поможет :)
Когда вы запускаете PHP-скрипт через cron, он будет работать до тех пор, пока он не завершится или не будет превышено время выполнения. Система всегда будет запускать новый экземпляр скрипта, будет ли последний скрипт работать или нет.
Если вы знаете, что сценарий работает долгое время, вы должны настроить сценарий bash, который проверяет, запущен ли скрипт и только запускает скрипт php, если это не так.
Cron не обрабатывает параллелизм для вас - ваш скрипт должен это сделать.
Оказывается, это довольно просто, поскольку существует тривиальная операция PHP, то есть atom: unlink()
.
Мы склонны использовать его таким образом:
unlink()
в файле глобального флагаunlink()
в файле флага таймераtouch()
файл глобального флага и завершает работу (это гарантирует, что один запуск cron начинается не более одного экземпляра)touch()
файл глобального флага, чтобы перезапустить циклТаким образом, cron запускает, что приведет к параллелизму, не учитывается.