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

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

Jun 22, 2018 pm 05:02 PM
node 定时任务

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)
Nach dem Login kopieren

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());
});
Nach dem Login kopieren

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());
});
Nach dem Login kopieren

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

  });
Nach dem Login kopieren

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

 j.cancel();
Nach dem Login kopieren

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

  });
Nach dem Login kopieren

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

  });
Nach dem Login kopieren

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);
  });
Nach dem Login kopieren

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!

Erklärung dieser Website
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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Kennen Sie einige Gründe, warum geplante Crontab-Aufgaben nicht ausgeführt werden? Kennen Sie einige Gründe, warum geplante Crontab-Aufgaben nicht ausgeführt werden? Mar 09, 2024 am 09:49 AM

Kennen Sie einige Gründe, warum geplante Crontab-Aufgaben nicht ausgeführt werden?

So verwenden Sie Express für den Datei-Upload im Knotenprojekt So verwenden Sie Express für den Datei-Upload im Knotenprojekt Mar 28, 2023 pm 07:28 PM

So verwenden Sie Express für den Datei-Upload im Knotenprojekt

Geplante Aufgabenplanung von ThinkPHP6: Geplante Aufgabenausführung Geplante Aufgabenplanung von ThinkPHP6: Geplante Aufgabenausführung Aug 12, 2023 pm 03:28 PM

Geplante Aufgabenplanung von ThinkPHP6: Geplante Aufgabenausführung

Python implementiert die automatische Seitenaktualisierung und die Funktionsanalyse geplanter Aufgaben für Headless-Browser-Sammlungsanwendungen Python implementiert die automatische Seitenaktualisierung und die Funktionsanalyse geplanter Aufgaben für Headless-Browser-Sammlungsanwendungen Aug 08, 2023 am 08:13 AM

Python implementiert die automatische Seitenaktualisierung und die Funktionsanalyse geplanter Aufgaben für Headless-Browser-Sammlungsanwendungen

Eine ausführliche Analyse des Prozessmanagement-Tools „pm2' von Node Eine ausführliche Analyse des Prozessmanagement-Tools „pm2' von Node Apr 03, 2023 pm 06:02 PM

Eine ausführliche Analyse des Prozessmanagement-Tools „pm2' von Node

So entwickeln Sie mit PHP eine geplante Aktualisierungsfunktion für Webseiten So entwickeln Sie mit PHP eine geplante Aktualisierungsfunktion für Webseiten Aug 17, 2023 pm 04:25 PM

So entwickeln Sie mit PHP eine geplante Aktualisierungsfunktion für Webseiten

PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? Mar 05, 2025 pm 05:57 PM

PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein?

So verwenden Sie geplante Aufgaben in FastAPI, um Hintergrundarbeiten auszuführen So verwenden Sie geplante Aufgaben in FastAPI, um Hintergrundarbeiten auszuführen Jul 28, 2023 pm 02:22 PM

So verwenden Sie geplante Aufgaben in FastAPI, um Hintergrundarbeiten auszuführen

See all articles