Как я могу расставить кроны за 100 минут? - PullRequest
1 голос
/ 13 сентября 2011

Мне пришлось разделить несколько больших крон, и простым способом было просто взять последние две цифры идентификатора.Таким образом, идентификатор 10001 будет работать одновременно с 1,101,201, ... 1001,2001 и т. Д.

Вместо того, чтобы один крон занимал часы, они теперь делятся на 100 раз и работают гораздо более согласованно.

Однако, как я могу запланировать запуск cron каждые 100 минут, начиная с x ?

пример:

php cron.cli 00   start at 12:01am and run every 100 minutes
php cron.cli 01   start at 12:01am
php cron.cli 02   start at 12:02am
     . . .
php cron.cli 99   start at 1:39am
php cron.cli 00   start at 1:40am [looping every 100 minutes]
php cron.cli 01   start at 1:41am

Мне нужен cron 01начало в 0:01, хрон 02 - в 12:02 и 99 - в 1:39.И каждые сто секунд, соответственно.

Вы можете помочь?

Ответы [ 3 ]

5 голосов
/ 13 сентября 2011

Я бы написал только одну запись в файл crontab. Одна команда запускает скрипт cron.cli и передает текущее время в качестве параметра.

Сценарий cron-cli затем берет этот параметр и создает соответствующий идентификатор из него. Таким образом, управлять файлом намного проще, так как вы не запутаете файл crontab с таким большим количеством записей. И представьте, что ваши 100 шагов становятся 200 шагами или даже больше ...

* * * * * php cron.cli $(date +\%R)
2 голосов
/ 13 сентября 2011

К счастью, если вы напишите это явно, вам нужно будет указать только год записи cron, так как:

enter image description here

2 голосов
/ 13 сентября 2011

Предполагая, что они не должны работать непрерывно, простой обходной путь - запускать их каждые 120 минут, чтобы вы могли указать четные часы для заданий от 00 до 59 (я полагаю, вы начинаете с 00, так как вы заканчиваете на 99.) и нечетные часы для работ с 61 по 99.

Если вы хотите более равномерное распределение, вы можете немного их разложить (пропустите минуты, кратные 6), чтобы задания с 00 по 49 заполняли первый час, а с 50 до 99 - второй час.

...