gpt4 book ai didi

node.js - 使用 Agenda.js 和 Node 安排重复的日常工作

转载 作者:行者123 更新时间:2023-12-05 02:59:03 25 4
gpt4 key购买 nike

我正在使用 Agenda.js 和 Node 设置作业调度程序,并以 MongoDB 为后盾。到目前为止,它按预期工作。但是,我不清楚如何安排重复作业——例如,每天上午 9 点运行的作业。

“schedule”用于一次作业的调度,但不重复:

agenda.schedule('today at 09:00am CST', 'first job');

“every”适用于“3 分钟”之类的间隔,但不适用于“一天上午 9:00”

agenda.every('3 minutes', 'second job');

由于配置方法应该是可链接的,所以我也尝试了这个:

agenda.processEvery('24 hours').schedule('day at 09:45am CST', 'second job');

...这确实在 CST 上午 9:45 第一次到达时成功运行了任务,但它没有将其重置为在第二天的同一时间运行。

每天上午 9:00 运行作业时我会使用什么语法?而且,更好的是,我如何才能安排它仅在周一至周五运行?

最佳答案

Ajenda 接受 cron 格式。所以你可以做这样的事情

这是重复工作每周一到周五的 09:00

job.repeatEvery('0 9 * * 1-5', {
skipImmediate: true
});

SkipImmediate 是可选的。这是 CRON checker对于上面的 cron 字符串。阅读更多关于 repeatEvery 的信息

编辑

JobAgenda 完成时返回

agenda.define('NAME', async job => {
job.repeatEvery('0 9 * * 1-5', {
skipImmediate: true
});
await job.save()
}

阅读更多关于 Creating Jobs 的信息

关于node.js - 使用 Agenda.js 和 Node 安排重复的日常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58323352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com