Node.js est un langage de développement côté serveur largement utilisé, et de nombreuses applications s'appuient sur les tâches planifiées de Node.js. Cependant, lorsque vous utilisez Node.js, vous rencontrez parfois le problème de la disparition des tâches planifiées après le redémarrage. Ce problème affecte dans une certaine mesure la stabilité et le fonctionnement normal de l'application, il doit donc être résolu à temps.
Dans cet article, nous présenterons étape par étape le problème des tâches planifiées qui disparaissent dans Node.js et sa solution.
1. Description du problème
Dans les applications Node.js, nous utilisons généralement setTimeout ou setInterval pour effectuer des tâches planifiées. Ces fonctions nous permettent de définir un intervalle de temps, puis d'exécuter un morceau de code à cet intervalle, en boucle jusqu'à ce que nous n'ayons plus besoin de l'arrêter.
Cependant, lorsque Node.js a été redémarré, nous avons constaté que ces tâches planifiées avaient disparu et qu'elles devaient être redémarrées manuellement. Cela nous amènera à surveiller en permanence l’état d’exécution de l’application, ce qui consomme beaucoup de temps et d’énergie.
2. Cause du problème
Dans Node.js, lorsque nous démarrons une tâche planifiée, elle sera ajoutée à une file d'attente d'événements lorsque la boucle d'événements atteint cette tâche. , il exécutera le code correspondant en fonction de l'intervalle de temps que nous avons défini. Cependant, lorsque nous redémarrerons Node.js, toute la file d'attente des événements sera effacée, donc toutes les tâches planifiées disparaîtront.
3. Solution
Afin de résoudre ce problème, nous pouvons utiliser pm2, l'outil de gestion de processus Node.js. pm2 peut nous aider à gérer le processus Node.js et à maintenir la stabilité et la haute disponibilité des applications.
La solution spécifique est la suivante :
Étape 1 : Installer pm2
Utilisez npm pour installer pm2 :
npm install -g pm2
pm2 start app.js
pm2 cron [interval] [command] [-d args]
pm2 cron '*/30 * * * * *' 'node process.js'
pm2 save
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!