Resetowanie zadań cronów w nodejach przy restarcie serwera

głosy
41

Mam aplikację węzłową js, gdzie użytkownik może zaplanować 4-5 różnych zadań cron. Użytkownik wybiera start_data, end_data, start_time i end_time i odpowiednio, funkcje crona są planowane i niektóre kampanie są generowane w celu połączenia z przewodami (lub innymi użytkownikami). Używam npm pakiet node-schedule, aby osiągnąć pożądane wykonanie cron-job, ale problem pojawia się, jeśli moja aplikacja sieciowa zawiesza się pomiędzy

Zgodnie z oficjalną dokumentacją node-schedule,

Zwróć uwagę, że Harmonogram węzła jest przeznaczony do harmonogramowania w procesie, tzn. zaplanowane zadania będą uruchamiane tylko tak długo, jak długo twój skrypt jest uruchomiony, a harmonogram zniknie po zakończeniu wykonywania.

Rozwiązaniem, które mogę wymyślić jest wywołanie funkcji crona za pomocą pliku server.js, który restartuje się za każdym razem, gdy wykonywany jest skrypt serwera. Ale nie jestem w stanie rozwiązać niektórych z poniższych problemów:

  1. Harmonogram jest funkcją indywidualną, a nie specyficzną dla kampanii, więc skąd aplikacja będzie wiedziała, którą funkcję crona uruchomić, jeśli nie została ona ukończona?
  2. Harmonogram to pojedyncza funkcja, która będzie wywoływana za każdym razem, gdy tylko serwer zostanie zrestartowany. Jeśli zostanie utworzonych 6 instancji serwera, zostanie on wywołany 6 razy

Załóżmy, że mój harmonogram ma być uruchomiony między 28 maja 11:00 a 31 maja 12:00. Harmonogram rozpoczyna swoją pracę i niektóre kampanie są wykonywane pomiędzy nimi. Jeśli mój serwer zostanie wyłączony 30 maja, jak mogę odebrać z pozostałego czasu i kampanii i zakończyć je stamtąd?

Więc martwię się o to, jak zaplanować lub obsługiwać funkcje pracy crona dla kampanii? Jeśli którykolwiek z zadań crona w kampanii zostanie przerwany, jeśli serwer zostanie zatrzymany, w jaki sposób powinienem być w stanie ponownie zaplanować lub wykonać tę funkcję crona od czasu lub daty, która z niego pozostała?

Nie mam dużego doświadczenia w pracy z kolesiami, licząc na jakieś przydatne rozwiązania.

Utwórz 28/05/2020 o 19:49
źródło użytkownik
W innych językach...                            

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