议程 js 作业立即执行

Agenda js job executes immediately

本文关键字:执行 作业 js 议程      更新时间:2023-09-26

我正在使用议程在我的服务器上运行计划事件。
我正在使用以下代码安排作业:

var job = global.agenda.create('send happy hour notification', {});
job.repeatEvery('0 21 * * *');
job.unique({});
job.save();

因此,这项工作应该在每天 21:00 运行。
但是每次我的服务器启动时,它都会运行此作业。
我做错了什么吗?

默认情况下,

任何重复作业都将按照您计划到的重复间隔执行 AND 立即执行。最后一部分是关键:默认情况下,重复议程将在您定义后立即运行。要更改此默认行为,请将skipImmediate: true传递给"选项"。像这样:

job.repeatEvery('3 minutes', {
  skipImmediate: true
});
await job.save();
以上内容仅在 3 分钟左右和每 3 分钟

后运行一次,而不是现在,在 3 分钟和每 3 分钟之后运行。

我遇到了同样的问题,所以我做了一些挖掘,发现它发生了,因为在保存时它无法正确计算 nextRunAt,所以只需在保存作业之前运行"job.computeNextRunAt((;",它应该工作正常。