Cara nod melaksanakan tugas berjadual: 1. Gunakan setTimeOut dan acara acara untuk pengurusan; panggilan balik dengan setTimeOut.
Persekitaran pengendalian tutorial ini: sistem linux7.3, versi node18.4.0, komputer Dell G3.
Bagaimanakah nod melaksanakan tugas berjadual?
tugas berjadual nod (modul jadual nod)
Melaksanakan tugas berjadual setiap hari pada pukul sepuluh pagi Fungsi mengemas kini kod git pada pelayan pada dua titik
fail app.js di bawah rangka kerja koa2
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)
prinsip jadual nod : gunakan setTimeOut dan acara acara untuk mengurus semua yang ditambahkan Peristiwa diisih, dan selang masa antara masa semasa dan masa kejadian acara terkini dikira, dan kemudian setTimeOut dipanggil untuk menetapkan panggilan balik. Secara umumnya, terdapat dua jenis acara, satu adalah satu masa dan satu lagi adalah berkala Tugas satu masa akan berakhir selepas dipanggil, dan tugas berkala akan dipanggil secara berterusan Hasilkan tugasan berkala seterusnya berdasarkan tempoh, tambahkannya pada senarai tugasan dan susun semula. Pada akhir setiap panggilan tugas, tugas seterusnya dikira dan disediakan.
1. Tetapkan pemasa
jadual nod membenarkan pelbagai peraturan untuk melaksanakan pemasaan
1 pemasa gaya Cron
* * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ | │ │ │ │ │ └ 一周的星期 (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('执行了!'); });
2 pemasa peraturan objek
var schedule = require('node-schedule'); var date = new Date('2017-09-26 22:00:00'); var j = schedule.scheduleJob(date, function(){ console.log('执行了!'); });
3. Pemasa peraturan contoh RecurrenceRule
var schedule = require('node-schedule'); var rule = new schedule.RecurrenceRule(); rule.minute = 42; var j = schedule.scheduleJob(rule, function(){ console.log('执行了!'); });
Untuk penggunaan khusus, sila lihat dokumen github https://github.com/node-schedule/node- jadual
Pembelajaran yang disyorkan: "tutorial video nodejs"
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan tugas berjadual dalam nod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!