Maison  >  Article  >  interface Web  >  Comment implémenter des tâches planifiées dans NodeJs (tutoriel détaillé)

Comment implémenter des tâches planifiées dans NodeJs (tutoriel détaillé)

亚连
亚连original
2018-06-22 17:02:382782parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn