Rescheduling cron banen in nodejs op server herstarten

stemmen
0

Ik heb node js applicatie waar een gebruiker 4-5 verschillende cron jobs kan inplannen. Een gebruiker selecteert een start_datum, end_datum, start_tijd en end_tijd, en dienovereenkomstig worden de cron-functies ingepland en worden sommige campagnes gegenereerd om verbinding te maken met leads (of andere gebruikers). Ik gebruik npm-pakket node-schema om de gewenste cron-job uitvoering te bereiken, maar het probleem ontstaat als mijn webapplicatie tussendoor crasht

Volgens de officiële documentatie van node-schedule,

Merk op dat Node Schedule is ontworpen voor in-process scheduling, d.w.z. dat geplande taken alleen worden afgevuurd zolang uw script draait, en dat het schema verdwijnt als de uitvoering is voltooid.

De oplossing die ik kan bedenken om dit op te lossen is om de cron-functies aan te roepen met behulp van server.js bestand dat elke keer als het server script wordt uitgevoerd opnieuw wordt opgestart. Maar ik kan een aantal van de volgende problemen niet oplossen:

  1. Een planner is een individuele functie, niet campagne-specifiek, dus hoe weet de applicatie welke cron-functie te starten als deze niet is voltooid?
  2. Een scheduler is een enkele functie, die elke keer wordt aangeroepen zodra de server opnieuw wordt opgestart. Als er 6 keer een server wordt aangemaakt, zal deze 6 keer worden aangeroepen

Stel dat mijn planner tussen 28 mei 11:00 uur en 31 mei 12:00 uur moet worden uitgevoerd. De scheduler start zijn werk en sommige campagnes worden tussendoor uitgevoerd. Als mijn server op 30 mei uitvalt, hoe kan ik dan van de resterende datum-tijd en campagnes afhalen en van daaruit verder werken?

Dus ik maak me zorgen over hoe ik de cron-functies voor de campagnes moet plannen of afhandelen? Als een van de campagne cron jobs wordt gecrasht tussendoor als de server wordt gestopt, hoe moet ik in staat zijn om die cron functie opnieuw te plannen of uit te voeren vanaf de tijd of datum die er nog van over is?

Ik heb niet veel ervaring met cron jobs, in de hoop op een aantal handige oplossingen.

De vraag is gesteld op 28/05/2020 om 19:49
bron van user
In andere talen...                            

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