更新:
- 新增队列信息查看
- 修复暂停任务和继续运行
- 新增使用实例
安装:
npm install dl-scheduler
代码:
import { SchedulerCenter } from "dl-scheduler";
const scheduler = new SchedulerCenter("test");
scheduler.addTask("1", { weight: 1, params: { title: "低权重" } }, (params: any) => {
console.log("1", params);
});
scheduler.addTask("2", { weight: 3, params: { title: "高权重" } }, (params: any) => {
console.log("2", params);
});
scheduler.addTask("3", { weight: 2, params: { title: "中权重" } }, (params: any) => {
console.log("3", params);
});
// 停止执行任务
scheduler.stopTask();
// 添加就绪任务
scheduler.addTask("4", { weight: 2, params: { title: "继续执行2" } }, (params: any) => {
console.log("4", params);
});
scheduler.addTask("5", { weight: 1, params: { title: "继续执行1" } }, (params: any) => {
console.log("5", params);
});
scheduler.addTask("6", { weight: 3, params: { title: "继续执行3" } }, (params: any) => {
console.log("6", params);
});
// 创建一个不立即执行队列
const task = new SchedulerCenter("noRun", {
// 是否立刻执行任务,默认:true
isRunning: false,
});
task.addTask("aaa", { weight: 2, params: { title: "aaa的内容" } }, (params: any) => {
console.log("aaa", params);
});
task.addTask("bbb", { weight: 1, params: { title: "bbb的内容" } }, (params: any) => {
console.log("bbb", params);
});
console.log("------------------------------------------------");
// 获指定的取队列信息
let taskStatus = SchedulerCenter.getTaskStatus("test") || "";
console.log("| test的队列的信息", taskStatus.toString());
console.log("------------------------------------------------");
// 获取全部队列信息
let allTaskStatus = SchedulerCenter.getTaskStatus() || "";
console.log("| 所有队列的信息", JSON.stringify(allTaskStatus));
console.log("------------------------------------------------");
// 模拟中途需要暂停任务的场景
let count = 0;
let timer = setInterval(() => {
count++;
console.log("等待时间:", count, "秒");
if (count == 3) {
clearInterval(timer);
// 开始执行
scheduler.runTask();
}
}, 1000);