我正在使用Agenda.js和Node设置一个作业调度程序,并以MongoDB为后盾。到目前为止,它还在按预期工作。然而,我不清楚如何安排重复的任务--例如,每天早上9点就应该运行的任务。
"schedule“用于一次作业调度,但不重复:
agenda.schedule('today at 09:00am CST', 'first job');“每个”的工作间隔都像"3分钟“,而不是”上午9点的一天“。
agenda.every('3 minutes', 'second job');由于配置方法应该是可链接的,所以我也尝试过这样做:
agenda.processEvery('24 hours').schedule('day at 09:45am CST', 'second job');..。这确实成功地运行了任务的第一次上午9:45科技委到达,但它没有重置它运行第二天在同一时间。
每天早上9点,我会用什么语法来运行作业?而且,更好的是,我怎么才能把它安排在星期一到星期五呢?
发布于 2019-10-10 13:55:03
Ajenda接受cron格式。所以你可以做这样的事
这是重复工作在每周的每一天从星期一到星期五 09:00。
job.repeatEvery('0 9 * * 1-5', {
skipImmediate: true
});SkipImmediate是可选的。下面是用于上述CRON检验员字符串的cron。阅读更多关于repeatEvery的信息
编辑
生成Job时返回Agenda
agenda.define('NAME', async job => {
job.repeatEvery('0 9 * * 1-5', {
skipImmediate: true
});
await job.save()
}阅读更多关于创造就业的信息
发布于 2020-12-30 06:47:42
我有一个类似的用例,但我不想使用cron字符串。
const agendaEvery = async (interval, sendTime, name, data, options) => {
const job = agenda
.create(name, data)
.repeatEvery(interval, {
timezone: 'Asia/Kuala_Lumpur',
skipImmediate: true,
startDate: sendTime
})
.schedule(sendTime)
await job.save()
}这将允许假设您希望每天发送电子邮件,您可以使用ISO格式化的日期时间字符串来调度第一个日期,并且间隔可以是.e.g 1 day。
发布于 2021-02-16 16:54:46
使用skipImmediate: true和repeatEvery,我得到了一个类型记录错误。线
agenda.every('0 9 * * 1-5', cronTypes.PUSH, null, {skipImmediate: true});成功了
https://stackoverflow.com/questions/58323352
复制相似问题