Maison > interface Web > js tutoriel > 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é)

亚连
Libérer: 2018-06-22 17:02:38
original
2834 Les gens l'ont consulté

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)
Copier après la connexion

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());
});
Copier après la connexion

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());
});
Copier après la connexion

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("执行任务");

  });
Copier après la connexion

Annuler la tâche à 15h40 le 14 février 2014

 j.cancel();
Copier après la connexion

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("执行任务");

  });
Copier après la connexion

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("执行任务");

  });
Copier après la connexion

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);
  });
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal