Перепланирование заданий cron в узлах на перезагрузке сервера

голоса
31

У меня есть приложение узла js, где пользователь может запланировать 4-5 различных заданий cron. Пользователь выбирает start_date, end_date, start_time и end_time, и, соответственно, функции cron планируются, а некоторые кампании генерируются для связи с проводниками (или другими пользователями). Я использую npm-пакет node-schedule для достижения желаемого cron-выполнения задания, но проблема возникает, если мое веб-приложение разваливается в промежутке между заданиями

В соответствии с официальной документацией node-schedule,

Обратите внимание, что Node Schedule предназначен для внутрипроцессного планирования, т.е. запланированные задания будут запускаться только до тех пор, пока запущен ваш скрипт, а расписание исчезнет после завершения выполнения.

Решение, которое я могу решить, заключается в вызове функций cron с помощью файла server.js, который перезапускается каждый раз, когда выполняется серверный скрипт. Но я не могу решить некоторые из следующих проблем:

  1. Планировщик - это индивидуальная функция, а не конкретная кампания, так как же приложение будет знать, какая функция cron будет запущена, если она не была завершена?
  2. Планировщик - это единая функция, которая будет вызываться каждый раз, как только сервер будет перезагружен. Если создано 6 экземпляров сервера, то он будет вызываться 6 раз

Предположим, что мой планировщик должен быть запущен с 28 мая с 11:00 до 31 мая 12:00. Планировщик начинает свою работу, а некоторые кампании выполняются в промежутке между ними. Если мой сервер выйдет из строя 30 мая, как я смогу взять оставшееся время и кампании и завершить их оттуда?

Значит, меня беспокоит, как запланировать или справиться с рабочими функциями cron для кампаний? Если какое-либо из заданий cron кампании разбивается между остановками сервера, как я должен быть в состоянии перепланировать или выполнить эту функцию cron с того времени или даты, которые остались от него?

Я не очень опытен в работе с cron, надеясь на некоторые удобные решения.

Задан 28/05/2020 в 19:49
источник пользователем
На других языках...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more