Dans le projet, il y a une fonction qui est exécutée à 0 heures tous les jours. Au départ, je voulais utiliser setInterval pour l'implémenter, mais je pense que ce besoin continuera d'exister à l'avenir. pas très évolutif. J'ai découvert le package node-schedule, donc dans cet article nous partagerons avec vous l'exemple de code pour implémenter des tâches planifiées dans NodeJs.
Enregistrez maintenant la méthode d'utilisation
node-schedule exécute toujours des méthodes spécifiques en créant un nouvel objet planningJob.
La valeur temporelle est représentée 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 heure
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()); });
À 16:43:00 le 16 décembre 2017, 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()); });
Cela 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].
la règle prend en charge la définition des valeurs de seconde, minute, heure, date, jour de la semaine, mois, année
De même :
Chaque L'exécution en secondes est règle.seconde =[0,1,2,3...59]
L'exécution en 0 seconde chaque minute est règle.seconde =0
L'exécution en 30 minutes par heure est règle.minute = 30;rule.second =0;
L'exécution à 0 heures tous les jours est Rule.hour =0;rule.minute =0;rule.second =0;
....
10 on le 1er de chaque mois Les points sont règle.date =1; règle.heure =10; règle.minute =0; règle.seconde =0
0 heures et 12 heures chaque semaine le 1, 3; , et 5 sont Rule.dayOfWeek =[1, 3,5];rule.hour =[0,12];rule.minute =0;rule.second =0;
....
Exemple
1 : Déterminer l'heure
Par exemple : 14 février 2014, 15h40 d'exécution
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
j.cancel();
2 : Heure fixe toutes les heures
Par exemple : 40 minutes d'exécution toutes les heures
var rule = new schedule.RecurrenceRule(); rule.minute = 40; var j = schedule.scheduleJob(rule, function(){ console.log("执行任务"); });
3 : Exécuté à une certaine heure certains jours de la semaine,
Par exemple : exécuté à 20h00 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 Voici un exemple de code, j'espère que cela vous aidera.
Recommandations associées :
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); });
À propos du principe d'analyse des timers en JavaScript
Partage du framework de tâches planifiées PHP
Comment implémenter des tâches planifiées en PHP ?
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!