我正在使用Agenda在我的服务器上运行计划事件。
我正在使用以下代码调度一个作业:
var job = global.agenda.create('send happy hour notification', {});
job.repeatEvery('0 21 * * *');
job.unique({});
job.save();因此,该作业应在每天21:00运行。
但是我的服务器每次启动时都会运行这个作业..
我做错了什么吗?
发布于 2020-01-15 04:07:13
默认情况下,任何重复作业都将按照计划的重复时间间隔立即执行。最后一部分是关键:默认情况下,重复议程将在您定义它之后立即运行。要更改此默认行为,请将skipImmediate: true传递给"options“。如下所示:
job.repeatEvery('3 minutes', {
skipImmediate: true
});
await job.save();上面只会在3分钟后每3分钟运行一次,而不是现在和3分钟后每3分钟运行一次。
发布于 2016-08-01 14:53:45
我遇到了同样的问题,所以我做了一些挖掘,发现它的发生是因为在保存它时无法正确地计算nextRunAt,所以在保存作业之前只需运行"job.computeNextRunAt();“,它应该可以正常工作。
https://stackoverflow.com/questions/38437403
复制相似问题