Rééchelonnement des tâches cron dans les nodejs lors du redémarrage du serveur

voix
41

J'ai l'application node js qui permet à un utilisateur de programmer 4 ou 5 tâches cron différentes. Un utilisateur sélectionne une date de début, une date de fin, une heure de début et une heure de fin, et en conséquence, les fonctions cron sont programmées et certaines campagnes sont générées pour se connecter avec des prospects (ou d'autres utilisateurs). J'utilise le paquet npm node-schedule pour obtenir l'exécution souhaitée des cron-jobs, mais le problème se pose si mon application web plante entre les deux

Selon la documentation officielle du node-schedule,

Notez que le Node Schedule est conçu pour la planification en cours de processus, c'est-à-dire que les travaux planifiés ne se déclencheront que tant que votre script sera en cours d'exécution, et le planning disparaîtra lorsque l'exécution sera terminée.

La solution que je peux trouver pour résoudre ce problème est d'appeler les fonctions cron en utilisant le fichier server.js qui redémarre à chaque fois que le script du serveur est exécuté. Mais je ne suis pas en mesure de résoudre certains des problèmes suivants :

  1. Un programmateur est une fonction individuelle, non spécifique à une campagne, alors comment l'application saura-t-elle quelle cron-fonction démarrer si elle n'a pas été complétée ?
  2. Le programmateur est une fonction unique, qui sera appelée à chaque fois dès que le serveur sera redémarré. Si 6 instances d'un serveur sont créées, il sera appelé 6 fois

Supposons que mon programmateur doit être exécuté entre le 28 mai 11h00 et le 31 mai 12h00. Le planificateur commence son travail et certaines campagnes sont exécutées entre les deux. Si mon serveur tombe en panne le 30 mai, comment puis-je récupérer les dates et les campagnes restantes et les terminer à partir de là ?

Je me demande donc comment planifier ou gérer les fonctions des cron jobs pour les campagnes ? Si l'une des tâches cron de la campagne est interrompue entre deux arrêts du serveur, comment pourrais-je reprogrammer ou exécuter cette fonction cron à partir de l'heure ou de la date qu'il en reste ?

Je n'ai pas beaucoup d'expérience dans les emplois de cron, j'espère des solutions pratiques.

Créé 28/05/2020 à 19:49
source utilisateur
Dans d'autres langues...                            

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