如何解决在调度程序 Node.js 中停止 Cron Job
我创建了一个 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();
解决方法
cron 工作是如何创建的?
实际上,Cron 作业是从父进程创建的。因此,父进程可以具有杀死或挂起子进程的能力或功能。所以这里的 node-cron 可能是这样工作的。
现在来解决您的问题,您已使用 cron.schedule(time,callback)
提交 cron 任务。现在回调将在单独的子进程上运行。因此,即使您使用 scheduler
对象来停止 cron 任务,它也不会起作用。 scheduler
可以从主进程(即 cron.js 文件)中停止子进程。
所以我建议你重构你的代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。