Heim > Artikel > Web-Frontend > So implementieren Sie geplante Aufgaben in NodeJs (ausführliches Tutorial)
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!