Agenda js工作立即执行

时间:2016-07-18 13:01:31

标签: javascript node.js

我使用Agenda在我的服务器上运行计划事件 我使用此代码安排工作:

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

所以工作应该每天21:00运行 但是每次我的服务器启动它都会运行这个工作 我做错了吗?

2 个答案:

答案 0 :(得分:3)

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

job.repeatEvery('3 minutes', {
  skipImmediate: true
});
await job.save();

上述操作仅在大约3分钟后每3分钟运行一次,而现在则在3分钟后每3分钟运行一次。

答案 1 :(得分:1)

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