У меня есть задание php cron, которое нужно запускать каждую минуту. Работа занимает пять-семь минут. Как управляются такие типы cron? Прерывает ли он предыдущее задание и начинает работать как новое задание или запускает новое задание параллельно с предыдущим заданием? Должен ли я разбить большую работу на более мелкие и добавить каждую в качестве отдельного задания cron?
Как долго обрабатывается задание php cron, которое должно повторяться в течение короткого периода времени?
comment
пожалуйста, добавьте свой cronjob (команды и т. д.)
- person Lohardt   schedule 28.10.2015
comment
в такой ситуации вы можете использовать параллельную/многопоточность в PHP
- person Nuriddin Rashidov   schedule 28.10.2015
comment
@Lohardt На самом деле cronjob - это длинный php-скрипт.
- person Rahul K Jha   schedule 29.10.2015
comment
да, но как это выполняется, то есть какую команду вы используете? # * * * * * команда для выполнения
- person Lohardt   schedule 30.10.2015
comment
Обычно сценарий не прерывается.
- person Lohardt   schedule 30.10.2015
Ответы (1)
Я обычно делаю что-то вроде следующего в сценарии:
- Проверьте наличие файла блокировки. Если он найден, выйдите из скрипта
- Создать файл блокировки
- Сделайте некоторую обработку
- Освободите файл блокировки.
- Выход
Вам также может понадобиться добавить некоторую дополнительную логику на шаге 1, если сценарий прерывается по какой-то неизвестной причине и не удаляет файл блокировки. Например, файл блокировки может содержать PID создавшего его процесса. Затем следующий запуск задания может проверить наличие файла блокировки, а также наличие PID. Если какой-либо из них отсутствует, удалите файл блокировки и продолжайте работу, как будто его никогда не существовало.
person
Scott Christensen
schedule
28.10.2015
Я использовал этот подход с успехом. Но это не совсем то, о чем спрашивает ОП. Вы решаете проблему, которую он, скорее всего, получит в послесловии :)
- person Lohardt; 30.10.2015