У меня есть в общей сложности 9 заданий cron, каждое из которых нужно запускать один раз с 15-минутными интервалами в временном окне 2:15. Так, например, начиная с полуночи:
Первый цикл
0:00 - Cron 1
0:15 - Cron 2
0:30 - Cron 3
0:45 - Cron 4
1:00 - Cron 5
1:15 - Cron 6
1:30 - Cron 7
1:45 - Cron 8
2:00 - Cron 9
Второй цикл
2:15 - Cron 1
2:30 - Cron 2
2:45 - Cron 3
3:00 - Cron 4
3:15 - Cron 5
3:30 - Cron 6
3:45 - Cron 7
4:00 - Cron 8
4:15 - Cron 9
Третий цикл
4:30 - Cron 1
4:45 - Cron 2
5:00 - Cron 3
5:15 - Cron 4
5:30 - Cron 5
5:45 - Cron 6
6:00 - Cron 7
6:15 - Cron 8
6:30 - Cron 9
и так далее и тому подобное. Как мне настроить интервалы?
Задания Cron основаны на времени и хороши с регулярными интервалами. С нерегулярным интервалом (здесь: 135 минут), я думаю, вы можете определить cron только так:
0 0 * * * /your/cron1
15 0 * * * /your/cron2
30 0 * * * /your/cron3
45 0 * * * /your/cron4
...
0 6 * * * /your/cron7
15 6 * * * /your/cron8
30 6 * * * /your/cron9
...и так далее.
Альтернативой может быть что-то вроде описанного в это сообщение SO.
Вот альтернатива множеству расписаний cron, которые, в зависимости от варианта использования, могут оказаться более гибкими.
У меня есть некоторые задачи, которые нужно запускать периодически, за исключением определенных периодов дня. Это достигается за счет регулярного расписания cron для запуска задачи с заданными интервалами, скажем, каждые 5 или 10 минут. Затем для каждого периода времени, когда я не хочу, чтобы задача выполнялась, есть два расписания, одно в начале и одно в конце этого периода времени. Первый создает файл флага, а второй удаляет его. Запускаемая задача проверяет наличие этого файла флагов и просто завершает работу, если он существует. Очевидно, что реверс может быть применен, если это более уместно.