我正在使用包"cron": "^1.7.1"
。
我想完成一项可能比预定的 cron-job 花费更长的时间的任务。
在下面找到我的最小可行示例:
const CronJob = require('cron').CronJob;
console.log('Before job instantiation');
const job3 = new CronJob(
'*/2 * * * * *', async () => {
if (job3.taskRunning) {
return
}
try {
//run longer task here
await setTimeout(() => {
const d = new Date();
console.log('JOB 3 - ', d);
job3.taskRunning = true
}, 6000);
} catch (err) {
console.log(err);
}
job3.taskRunning = false
}
)
console.log('After job instantiation');
job3.start();
如您所见,我的作业运行every 2 seconds
并打印:
JOB 3 - 2019-09-01T17:06:22.006Z
JOB 3 - 2019-09-01T17:06:24.001Z
JOB 3 - 2019-09-01T17:06:26.002Z
JOB 3 - 2019-09-01T17:06:28.001Z
但是,我只想every 6 seconds
在任务需要运行时收到消息6 seconds
。
有什么建议我做错了吗?