|
@@ -1,12 +1,11 @@
|
|
/*
|
|
/*
|
|
- * @Description: 定時執行任務
|
|
|
|
|
|
+ * @Description: 定期執行任務
|
|
* @Autor: kindring
|
|
* @Autor: kindring
|
|
- * @Date: 2021-09-02 14:51:09
|
|
|
|
|
|
+ * @Date: 2021-09-02 14:24:58
|
|
* @LastEditors: kindring
|
|
* @LastEditors: kindring
|
|
- * @LastEditTime: 2021-09-02 14:51:12
|
|
|
|
|
|
+ * @LastEditTime: 2021-09-02 16:23:43
|
|
* @LastDescript:
|
|
* @LastDescript:
|
|
*/
|
|
*/
|
|
-
|
|
|
|
// 定义任务队列
|
|
// 定义任务队列
|
|
class Task {
|
|
class Task {
|
|
constructor() {
|
|
constructor() {
|
|
@@ -52,15 +51,21 @@ class Task {
|
|
return this;
|
|
return this;
|
|
}
|
|
}
|
|
change(preSign) {
|
|
change(preSign) {
|
|
- let preData = this.preSigns[preSign];
|
|
|
|
- if (preData) {
|
|
|
|
- preData.val = true
|
|
|
|
- // 尝试找出任务有问题的
|
|
|
|
- this.checkPre(preData);
|
|
|
|
- }
|
|
|
|
- return this;
|
|
|
|
|
|
+ let preData = this.preSigns[preSign];
|
|
|
|
+ if (preData) {
|
|
|
|
+ preData.val = true
|
|
|
|
+ // 尝试找出任务有问题的
|
|
|
|
+ this.checkPre(preData);
|
|
}
|
|
}
|
|
- // 运行满足条件的函数
|
|
|
|
|
|
+ return this;
|
|
|
|
+ }
|
|
|
|
+ recover(preSign) {
|
|
|
|
+ let preData = this.preSigns[preSign];
|
|
|
|
+ if (preData) {
|
|
|
|
+ preData.val = false
|
|
|
|
+ }
|
|
|
|
+ return this;
|
|
|
|
+ }
|
|
checkPre(preData) {
|
|
checkPre(preData) {
|
|
preData.tasks.forEach(id => {
|
|
preData.tasks.forEach(id => {
|
|
if (this.taskList[id]) {
|
|
if (this.taskList[id]) {
|
|
@@ -124,33 +129,4 @@ class Task {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-let t = new Task();
|
|
|
|
-t.add(() => {
|
|
|
|
- console.log('發送消息 6')
|
|
|
|
- t.change('end')
|
|
|
|
-}, { pre: 'ok1' })
|
|
|
|
-t.add(() => {
|
|
|
|
- console.log('開始發送消息 5');
|
|
|
|
- t.change('ok1')
|
|
|
|
-}, { pre: ['pre', 'ok2'] })
|
|
|
|
-
|
|
|
|
-t.add(() => {
|
|
|
|
- console.log('開始 1')
|
|
|
|
-})
|
|
|
|
-
|
|
|
|
-t.add(() => {
|
|
|
|
- console.log('結束 7');
|
|
|
|
-}, { pre: 'end' })
|
|
|
|
-
|
|
|
|
-setTimeout(() => {
|
|
|
|
- console.log(`change pre wait 3`);
|
|
|
|
- t.change('pre')
|
|
|
|
-}, 1000)
|
|
|
|
-setTimeout(() => {
|
|
|
|
- console.log(`change ok wait 4`);
|
|
|
|
- t.change('ok2')
|
|
|
|
-}, 2000)
|
|
|
|
-
|
|
|
|
-console.log('執行任務 2')
|
|
|
|
-
|
|
|
|
-module.exports = Task;
|
|
|
|
|
|
+export default Task;
|