Heim  >  Artikel  >  Web-Frontend  >  So implementieren Sie geplante Aufgaben in NodeJs (ausführliches Tutorial)

So implementieren Sie geplante Aufgaben in NodeJs (ausführliches Tutorial)

亚连
亚连Original
2018-06-22 17:02:382770Durchsuche

In diesem Artikel wird hauptsächlich der Beispielcode für die Implementierung geplanter Aufgaben in NodeJs vorgestellt. Der Herausgeber findet ihn recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz verwenden. Lassen Sie uns dem Editor folgen und einen Blick darauf werfen.

Im Projekt gibt es eine Funktion, die jeden Tag um 0 Uhr ausgeführt wird. Ursprünglich wollte ich setInterval verwenden, um sie zu implementieren, aber ich habe das Gefühl, dass dies der Fall ist Die Nachfrage wird auch in Zukunft bestehen bleiben. Es ist möglicherweise nicht skalierbar.

Nach der Suche habe ich das Node-Schedule-Paket gefunden.

Zeichnen Sie nun die Verwendungsmethode auf

Node-Schedule führt immer bestimmte Methoden aus, indem ein neues ScheduleJob-Objekt erstellt wird.

Der Zeitwert wird in der folgenden Tabelle ausgedrückt

*  *  *  *  *  *
┬  ┬  ┬  ┬  ┬  ┬
│  │  │  │  │  |
│  │  │  │  │  └ [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)

Verwenden Sie Node-Schedule, um die Methode zum angegebenen Zeitpunkt auszuführen

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());
});

um 16: 00 am 16. Dezember 2017 43 Minuten und 0 Sekunden, drucken Sie die aktuelle Uhrzeit

Geben Sie die Ausführungsmethode für das Zeitintervall an

var rule = new schedule.RecurrenceRule();
rule.second = 10;
var j = schedule.scheduleJob(rule, function(){
 console.log('现在时间:',new Date());
});

Hiermit wird die Uhrzeit jedes Mal gedruckt Die Anzahl der Sekunden beträgt 10. Wenn Sie es alle 10 Sekunden ausführen möchten, setzen Sie einfach Rule.second =[0,10,20,30,40,50].

Die von der Regel unterstützten Werte sind Sekunde, Minute, Stunde, Datum, Wochentag, Monat, Jahr

Ähnlich:

Ausführung pro Sekunde ist Rule.second =[ 0 ,1,2,3...59]
Ausführung bei 0 Sekunden jede Minute ist Rule.second =0
Ausführung bei 30 Minuten jede Stunde ist Rule.minute =30;rule.second =0;
Die Ausführung um 0 Uhr jeden Tag ist Rule.hour =0;rule.minute =0;rule.second =0;
....
Um 10 Uhr am 1. jedes Monats , Rule.date =1;rule .hour =10;rule.minute =0;rule.second =0;
0 Uhr und 12 Uhr am 1., 3. und 5. Tag jeder Woche sind Rule.dayOfWeek = [1,3,5];rule.hour = [0,12];rule.minute =0;rule.second =0;
....

Beispiel

1: Bestimmen Sie die Zeit

Zum Beispiel: Ausführen

  var schedule = require("node-schedule");

  var date = new Date(2014,2,14,15,40,0);

  var j = schedule.scheduleJob(date, function(){

    console.log("执行任务");

  });

Aufgabe am 14. Februar 2014 um 15:40 Uhr abbrechen

 j.cancel();

2: Feste Zeit jede Stunde

Beispiel: jede Stunde 40-Minuten-Ausführung

  var rule = new schedule.RecurrenceRule();

  rule.minute = 40;

  var j = schedule.scheduleJob(rule, function(){

    console.log("执行任务");

  });

3: Ausführung zu einer bestimmten Zeit an bestimmten Wochentagen,

Beispiel: Ausführung um 20 Uhr von Montag bis Sonntag

  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: Ausführung pro Sekunde

  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);
  });

Das Obige habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

So verwenden Sie die Videokomponente zum Abspielen von Videos im WeChat-Miniprogramm

So verwenden Sie die Audiokomponente im WeChat-Miniprogramm

So implementieren Sie die sekundäre Axios-Kapselung in Vue

So implementieren Sie Auf- und Ab-Scroll-Ankündigungen mit js

Das obige ist der detaillierte Inhalt vonSo implementieren Sie geplante Aufgaben in NodeJs (ausführliches Tutorial). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn