So implementiert der Knoten geplante Aufgaben: 1. Verwenden Sie setTimeOut und Ereignisereignisse für die Verwaltung. 2. Sortieren Sie alle hinzugefügten Ereignisse und berechnen Sie das Zeitintervall zwischen der aktuellen Zeit und dem Zeitpunkt des Auftretens des letzten Ereignisses. 3. Rufen Sie setTimeOut auf, um den Rückruf festzulegen. Dürfen.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Node18.4.0-Version, Dell G3-Computer.
Wie implementiert Node geplante Aufgaben?
Node-geplante Aufgaben (Node-Schedule-Modul)
Implementieren Sie eine Funktion, die den Git-Code jeden Tag um zwölf Uhr auf dem Server aktualisiert
app.js-Datei Unter dem KOA2-Framework
import schedule from 'node-schedule'; import updateCode from './controllers/hcpLan/fetch' const app = new Koa(); const router = new Router(); router.get( '/', (ctx, next) => { ctx.body = 'hello' }); app.use(router.routes()).use(router.allowedMethods()); let rule = new schedule.RecurrenceRule() /**每天的凌晨12点更新代码*/ rule.hour = 0 rule.minute = 0 rule.second = 0 /**启动任务*/ schedule.scheduleJob(rule, () => { updateCode.cloneRepo(); console.log('代码更新了!'); }) app.listen(3000)
node-Schedule-Prinzip: Verwenden Sie setTimeOut und Ereignisereignisse für die Verwaltung, sortieren Sie alle hinzugefügten Ereignisse, berechnen Sie das Zeitintervall zwischen der aktuellen Zeit und dem Zeitpunkt des Auftretens des letzten Ereignisses und rufen Sie dann setTimeOut auf, um den Rückruf festzulegen. Im Allgemeinen gibt es zwei Arten von Ereignissen: Eine einmalige und eine periodische Aufgabe werden nach dem Aufruf beendet, und die periodische Aufgabe wird kontinuierlich aufgerufen Generieren Sie die nächste periodische Aufgabe basierend auf dem Zeitraum, fügen Sie sie zur Aufgabenliste hinzu und ordnen Sie sie neu an. Am Ende jedes Aufgabenaufrufs wird die nächste Aufgabe berechnet und vorbereitet.
1. Timer festlegen
Knotenplan ermöglicht die Implementierung einer Vielzahl von Regeln für die Zeitsteuerung
1. Zeitgeber für Datumsobjektregeln
* * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ | │ │ │ │ │ └ 一周的星期 (0 - 7) (0 or 7 is Sun) │ │ │ │ └───── 月份 (1 - 12) │ │ │ └────────── 月份中的日子 (1 - 31) │ │ └─────────────── 小时 (0 - 23) │ └──────────────────── 分钟 (0 - 59) └───────────────────────── 秒 (0 - 59, OPTIONAL) var schedule = require('node-schedule'); //当分钟为42时,执行一个cron任务 var j = schedule.scheduleJob('42 * * * *', function(){ console.log('执行了!'); });
3.RecurrenceRule-Instanzregel-Timer
var schedule = require('node-schedule'); var date = new Date('2017-09-26 22:00:00'); var j = schedule.scheduleJob(date, function(){ console.log('执行了!'); });
Für bestimmte Verwendungszwecke , schauen Sie sich bitte die Github-Dokumentation an https://github.com/node-schedule/node-schedule
Empfohlenes Lernen: „
nodejs Video-TutorialDas obige ist der detaillierte Inhalt vonSo implementieren Sie geplante Aufgaben im Knoten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!