Heim  >  Artikel  >  Web-Frontend  >  NodeJs-Beispielcode zum Implementieren geplanter Aufgaben

NodeJs-Beispielcode zum Implementieren geplanter Aufgaben

小云云
小云云Original
2017-12-06 11:01:311677Durchsuche

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

1: Bestimmen Sie die Uhrzeit

Zum Beispiel: 14. Februar 2014, 15:40 Uhr Ausführung

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

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

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

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

  });

Aufgabe abbrechen

 j.cancel();

2: Feste Zeit jede Stunde

Zum Beispiel: 40 Minuten Ausführung jede Stunde

  var rule = new schedule.RecurrenceRule();

  rule.minute = 40;

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

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

  });

3: Wird zu einer bestimmten Zeit an bestimmten Wochentagen ausgeführt,

Zum Beispiel: ausgeführt um 20:00 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 Hier ist ein Beispielcode, ich hoffe, er hilft.

Verwandte Empfehlungen:

  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);
  });
Über die prinzipielle Analyse von Timern in JavaScript

Freigabe des PHP-Frameworks für geplante Aufgaben

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!

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