Bagaimana untuk melaksanakan tugas berjadual dalam nod

藏色散人
Lepaskan: 2022-11-04 16:12:28
asal
4226 orang telah melayarinya

Cara nod melaksanakan tugas berjadual: 1. Gunakan setTimeOut dan acara acara untuk pengurusan; panggilan balik dengan setTimeOut.

Bagaimana untuk melaksanakan tugas berjadual dalam nod

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)
Salin selepas log masuk

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('执行了!');
});
Salin selepas log masuk

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('执行了!');
});
Salin selepas log masuk

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('执行了!');
});
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan