Планирование заданий Cron без встречных частот

0

Если у меня есть несколько запущенных заданий cron:

  1. Каждую минуту
  2. Каждые 5 минут
  3. Каждые 15 минут
  4. Каждый час
  5. В полночь

Тогда ровно в 00:00 у меня одновременно работает 5 заданий.

Я хочу добавить еще одну работу, которую мне просто нужно запускать «раз в день» - независимо от того, когда! На самом деле, я хочу, чтобы «когда» было в течение наименьшего времени загрузки сервера.

Как я могу это сделать?

Mikhail
источник

Ответы:

0

Один из способов сделать это заключается в следующем:

  1. вызывайте нужный сценарий один раз в час.
  2. При первом запуске скрипта проверьте наличие временного файла .runTime,
  3. Если такой файл существует
    1. Разберите его и получите из него время 24-часового формата.
    2. Если текущий час равен проанализированному времени
      1. Удалить .runTime файл и выполнить намеченный сценарий
    3. Если это другой час - отменить выполнение
  4. Если такого файла нет и час равен 0 (полночь)
    1. вычислить случайный час от 0 до 23 и записать его в файл
Mikhail
источник