【发布时间】:2021-10-01 08:38:10
【问题描述】:
我目前有 3 个任务需要每 3 天执行一次,我希望它们之间的 24 小时错开,这样在给定的一天只有一个作业在以下时间表中运行:
第 1 天:工作 1
第 2 天:工作 2
第 3 天:工作 3
第 4 天:工作 1
第 5 天:工作 2
day6: job3 等等
这是我目前使用 24 小时超时来错开作业的(笨拙)方法
import cron from 'node-cron'
cron.schedule('0 0 12 */3 * *', () => {
console.log('run job 1')
})
setTimeout(() => {
cron.schedule('0 0 12 */3 * *', () => {
console.log('run job 2')
})
setTimeout(() => {
cron.schedule('0 0 12 */3 * *', () => {
console.log('run job 3')
})
}, 24 * 3600 * 1000)
}, 24 * 3600 * 1000)
这似乎很不稳定,每次服务器中断或必须重新启动时,时间都会搞砸。
有没有办法告诉 cron 多个作业之间的时间,以便它们自动间隔 24 小时,以便 cron 知道在任何给定日历日应该运行哪个作业?
【问题讨论】:
标签: javascript node.js cron schedule