【发布时间】:2021-12-26 20:32:08
【问题描述】:
我创建了一个 cron-job 来运行任务,我希望它在调度程序内的某个特定条件下停止,但它不起作用。
如何停止调度程序内的 cron 作业?
这是我的代码:
// cron-job.js
const cron = require('node-cron');
const scheduler = cron.schedule('* * * * *', () => {
let result = fetchResultAfterSomeOperation();
if (result < 20) {
scheduler.stop(); //------------------------ It doesn't work
}
}, {
scheduled: false
});
scheduler.start();
【问题讨论】:
-
fetchResultAfterSomeOperation() 是异步的吗?如果是这样,那么它会返回一个承诺并且
if语句将不会执行。如果是这种情况,请使用 await 并使您的匿名函数异步,例如 async () => {}。另外,请确保结果的返回不是未定义的。这也会使if声明无效。 -
不,它不是异步的......我要说的是......控制进入 if 语句但
scheduler.stop()不起作用,我不知道为什么它不是工作。 -
更新问题以便于理解
标签: javascript node.js cron backend node-cron