我使用Agenda在我的服务器上运行计划事件 我使用此代码安排工作:
var job = global.agenda.create('send happy hour notification', {});
job.repeatEvery('0 21 * * *');
job.unique({});
job.save();
所以工作应该每天21:00运行 但是每次我的服务器启动它都会运行这个工作 我做错了吗?
答案 0 :(得分:3)
默认情况下,任何重复作业将在您将其计划为AND的重复间隔上立即执行。最后一部分是关键:默认情况下,重复的议程将在您定义后立即运行。要更改此默认行为,请将skipImmediate: true
传递给“选项”。像这样:
job.repeatEvery('3 minutes', {
skipImmediate: true
});
await job.save();
上述操作仅在大约3分钟后每3分钟运行一次,而现在则在3分钟后每3分钟运行一次。
答案 1 :(得分:1)
我遇到了同样的问题,所以我做了一些挖掘并发现它发生了,因为在保存它时无法正确计算nextRunAt,所以只需运行" job.computeNextRunAt();"在保存你的工作之前,它应该工作正常。