一、安装node-schedule
yarn add node-schedule
二、导入 node-schedule
创建 timedTask.js 文件,以下代码都会写在里面
const schedule = require("node-schedule");
// 开启任务
function open() {
const list = [
/*你的任务*/
];
list.forEach((ele) => {
// 判断模式
switch (ele.mode) {
case 1:
// 重复
let rule2 = new schedule.RecurrenceRule();
// [0,1,2],表示周天、周一、周二都会执行
rule2.dayOfWeek = [0, 1, 2];
rule2.hour = 10;
rule2.minute = 30;
rule2.second = 0;
let zi = schedule.scheduleJob("任务id,必须唯一", rule2, () => {
// 到时间需要执行的方法
});
break;
case 2:
// 不重复
let date = "2023/10/05 09:40:00";
let ja = schedule.scheduleJob("任务id,必须唯一", date, function () {
// 到时间需要执行的方法
});
break;
case 3:
// 连续执行
let v = new Date();
let list = [v.getDate()];
// 连续5天
for (let i = 0; i < 5 - 1; i++) {
list.push(v.getDate() + i + 1);
}
let rule = new schedule.RecurrenceRule();
rule.year = v.getFullYear();
rule.month = v.getMonth();
rule.date = list;
rule.hour = 10;
rule.minute = 30;
rule.second = 0;
let ab = schedule.scheduleJob("任务id,必须唯一", rule, (v) => {
// 到时间需要执行的方法
});
break;
}
});
}
// 停止任务
function stop() {
if (schedule.scheduledJobs["任务id,必须唯一"]) {
schedule.scheduledJobs["任务id,必须唯一"].cancel();
}
}
// 删除所有任务
function removeAll() {
for (let i in schedule.scheduledJobs) {
schedule.cancelJob(i);
}
}
module.exports = { open, stop, removeAll };
三、如果定时任务有问题
看看是不是时间不对,中国时区哦