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

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

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

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

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

1 ответ1

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .