admin管理员组文章数量:1591462
一、安装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 };
三、如果定时任务有问题
看看是不是时间不对,中国时区哦
版权声明:本文标题:nodejs 实现定时任务 node-schedule 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1725779782a1042131.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论