Riprogrammare i lavori di cron in nodej al riavvio del server

voti
41

Ho un'applicazione di nodo js dove un utente può programmare 4-5 diversi lavori di cron. Un utente seleziona una start_date, end_date, start_time e end_time e, di conseguenza, le funzioni di cron sono programmate e alcune campagne sono generate per connettersi con i lead (o altri utenti). Sto usando il pacchetto npm node-schedule per ottenere l'esecuzione desiderata di cron-job, ma il problema si pone se la mia applicazione web si blocca nel mezzo

Come da documentazione ufficiale di node-schedule,

Si noti che Node Schedule è progettato per la pianificazione in-process, cioè i lavori pianificati si attivano solo finché lo script è in esecuzione, e la pianificazione scompare al termine dell'esecuzione.

La soluzione che posso trovare per risolvere questo problema è quella di chiamare le funzioni di cron utilizzando il file server.js che si riavvia ogni volta che lo script del server viene eseguito. Ma non sono in grado di risolvere alcuni dei seguenti problemi:

  1. Uno scheduler è una funzione individuale, non specifica della campagna, quindi come fa l'applicazione a sapere quale funzione cron ad iniziare se non è stata completata?
  2. Uno scheduler è una singola funzione, che verrà richiamata ogni volta non appena il server viene riavviato. Se vengono create 6 istanze di un server, questo sarà chiamato 6 volte

Supponiamo che il mio scheduler debba essere eseguito tra il 28 maggio dalle 11:00 alle 12:00 del 31 maggio. Lo scheduler inizia il suo lavoro e alcune delle campagne vengono eseguite nel frattempo. Se il mio server si spegne il 30 maggio, come posso prelevare dalla data e dalle campagne rimanenti e completarle da lì?

Quindi sono preoccupato di come programmare o gestire le funzioni di cron job per le campagne? Se uno dei lavori di cron delle campagne viene bloccato nel mezzo se il server viene fermato, come dovrei essere in grado di riprogrammare o eseguire la funzione di cron a partire dalla data o dall'ora che ne è rimasta?

Non ho molta esperienza con i lavori di cron, sperando in qualche soluzione pratica.

È pubblicato 28/05/2020 alle 19:49
fonte dall'utente
In altre lingue...                            

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