Maison > Article > interface Web > Comment implémenter des tâches planifiées dans NodeJs (tutoriel détaillé)
Cet article présente principalement l'exemple de code pour implémenter les tâches planifiées dans NodeJs. L'éditeur pense que c'est plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil.
Dans le projet, il y a une fonction qui est exécutée à 0 heures tous les jours. Je voulais à l'origine utiliser setInterval pour l'implémenter, mais je pense que ce genre de fonction est exécuté. de la demande continuera d’exister à l’avenir. L’écrire vous-même n’est peut-être pas évolutif.
Après avoir cherché, j'ai trouvé le package node-schedule.
Enregistrez maintenant la méthode d'utilisation
node-schedule exécute toujours des méthodes spécifiques en créant un nouvel objet planningJob.
Les valeurs temporelles sont représentées dans le tableau suivant
* * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ | │ │ │ │ │ └ [dayOfWeek]day of week (0 - 7) (0 or 7 is Sun) │ │ │ │ └───── [month]month (1 - 12) │ │ │ └────────── [date]day of month (1 - 31) │ │ └─────────────── [hour]hour (0 - 23) │ └──────────────────── [minute]minute (0 - 59) └───────────────────────── [second]second (0 - 59, OPTIONAL)
Utilisez node-schedule pour exécuter la méthode à l'heure spécifiée
var schedule = require('node-schedule'); var date = new Date(2017, 11, 16, 16, 43, 0); var j = schedule.scheduleJob(date, function(){ console.log('现在时间:',new Date()); });
en décembre 2017 À 16:43:00 le 16, imprimez l'heure actuelle
Spécifiez la méthode d'exécution de l'intervalle de temps
var rule = new schedule.RecurrenceRule(); rule.second = 10; var j = schedule.scheduleJob(rule, function(){ console.log('现在时间:',new Date()); });
Il s'agit de imprime l'heure à chaque fois que le nombre de secondes est de 10. Si vous souhaitez l'exécuter toutes les 10 secondes, définissez simplement Rule.second =[0,10,20,30,40,50].
Les valeurs prises en charge par la règle sont seconde, minute, heure, date, dayOfWeek, mois, année
De même :
L'exécution par seconde est règle.seconde =[ 0 ,1,2,3...59]
L'exécution à 0 seconde chaque minute est règle.seconde =0
L'exécution à 30 minutes toutes les heures est règle.minute =30;rule.second =0;
L'exécution à 0 heures tous les jours est règle.heure =0;rule.minute =0;rule.second =0;
....
A 10 heures le 1er de chaque mois , Rule.date =1;rule .hour =10;rule.minute =0;rule.second =0;
0 heures et 12 heures à 1, 3 et 5 de chaque semaine sont Rule.dayOfWeek = [1,3,5];rule.hour = [0,12];rule.minute =0;rule.second =0;
....
Exemple
1 : Déterminer l'heure
Par exemple : Exécuter
var schedule = require("node-schedule"); var date = new Date(2014,2,14,15,40,0); var j = schedule.scheduleJob(date, function(){ console.log("执行任务"); });
Annuler la tâche à 15h40 le 14 février 2014
j.cancel();
2 : Heure fixe toutes les heures
Par exemple : Exécution à 40 minutes toutes les heures
var rule = new schedule.RecurrenceRule(); rule.minute = 40; var j = schedule.scheduleJob(rule, function(){ console.log("执行任务"); });
3 : Exécution à une certaine heure certains jours de la semaine,
Par exemple : Exécution à 20 heures du lundi au dimanche
var rule = new schedule.RecurrenceRule(); rule.dayOfWeek = [0, new schedule.Range(1, 6)]; rule.hour = 20; rule.minute = 0; var j = schedule.scheduleJob(rule, function(){ console.log("执行任务"); });
4 : Exécution par seconde
var rule = new schedule.RecurrenceRule(); var times = []; for(var i=1; i<60; i++){ times.push(i); } rule.second = times; var c=0; var j = schedule.scheduleJob(rule, function(){ c++; console.log(c); });
Ce qui précède est ce que j'ai compilé pour tout le monde, j'espère que ce sera le cas. utile à tout le monde à l’avenir.
Articles connexes :
Comment utiliser le composant vidéo pour lire des vidéos dans le mini programme WeChat
Comment utiliser le composant audio dans le mini programme WeChat
Comment implémenter l'encapsulation secondaire axios dans vue
Comment implémenter des annonces défilantes de haut en bas à l'aide de js
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!