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 diese Art von Nachfrage auch in Zukunft bestehen wird Sie selbst sind möglicherweise nicht sehr skalierbar. Ich habe das Node-Schedule-Paket entdeckt, daher werden wir in diesem Artikel den Beispielcode für die Implementierung geplanter Aufgaben in NodeJs mit Ihnen teilen.
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 dargestellt
* * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ | │ │ │ │ │ └ [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 Uhrzeit
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()); });
Drucken Sie am 16. Dezember 2017 um 16:43:00 Uhr die aktuelle Uhrzeit aus
Zeitintervall-Ausführungsmethode angeben
var rule = new schedule.RecurrenceRule(); rule.second = 10; var j = schedule.scheduleJob(rule, function(){ console.log('现在时间:',new Date()); });
Dies druckt die Zeit jedes Mal aus, wenn die Anzahl der Sekunden 10 beträgt. Wenn Sie es alle 10 Sekunden ausführen möchten, setzen Sie einfach Rule.second =[0,10,20,30,40,50].
Regel unterstützt das Festlegen von Werten wie Sekunde, Minute, Stunde, Datum, Wochentag, Monat, Jahr
Ähnlich:
Jede Ausführung in Sekunden ist Rule.second =[0,1,2,3...59]
Ausführung in 0 Sekunden pro Minute ist Rule.second =0
Ausführung in 30 Minuten pro Stunde ist Rule.Minute = 30;rule.second =0;
Die Ausführung jeden Tag um 0 Uhr beträgt Rule.hour =0;rule.minute =0;rule.second =0;
....
10 am 1. eines jeden Monats Die Punkte sind Regel.Minute =0; Regel.Sekunde =0; 0 Uhr und 12 Uhr jede Woche; 3 und 5 sind Rule.dayOfWeek =[1, 3,5];rule.hour =[0,12];rule.minute =0;rule.second =0;
....
Beispiel
var schedule = require("node-schedule"); var date = new Date(2014,2,14,15,40,0); var j = schedule.scheduleJob(date, function(){ console.log("执行任务"); });
j.cancel();
var rule = new schedule.RecurrenceRule(); rule.minute = 40; var j = schedule.scheduleJob(rule, function(){ console.log("执行任务"); });
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("执行任务"); });
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); });
Wie implementiert man geplante Aufgaben in PHP?
Das obige ist der detaillierte Inhalt vonNodeJs-Beispielcode zum Implementieren geplanter Aufgaben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!