是一项滚动的Cron工作,有可能的偏移



是否可以写一个cron作业,每7小时执行每天固定时间,每7小时执行一次?例如,我知道我可以在13和20小时使用此语法进行执行,因此相距7个小时,但不滚动:

' * 13-23/7 * * *',在13H处执行,每天20H

但是我想要的实际上是:

13H,20H,第二天,3H,10H,17H,23H ...

克朗根本可以吗?如果有帮助,我会使用node.js软件包节点安排。

谢谢基督徒

这应该完成工作(赦免双关语)。做一些事情很容易做到"每小时可按7分开的跑步等"等事情。

,但我们可以使用多个cron表达式获得相同的结果,例如

0 6-20/7 * * 0
0 3-17/7 * * 1
0 0-21/7 * * 2
0 4-18/7 * * 3
0 1-22/7 * * 4
0 5-19/7 * * 5
0 2-23/7 * * 6

和设置7个单独的时间表..他们应该合并为您想要的顺序。

var schedule = require('node-schedule');
let scheduleList = [
    '0 6-20/7 * * 0',
    '0 3-17/7 * * 1',
    '0 0-21/7 * * 2',
    '0 4-18/7 * * 3',
    '0 1-22/7 * * 4',
    '0 5-19/7 * * 5',
    '0 2-23/7 * * 6'
];
scheduleList.forEach(cron => {
    schedule.scheduleJob(cron, function() {
        console.log('Cron job running!');
    }) 
});

我相信这将给出序列(例如):

2019-03-17 06:00:00
2019-03-17 13:00:00
2019-03-17 20:00:00
2019-03-18 03:00:00
2019-03-18 10:00:00
2019-03-18 17:00:00
2019-03-19 00:00:00
2019-03-19 07:00:00
2019-03-19 14:00:00
2019-03-20 04:00:00
2019-03-20 11:00:00
2019-03-20 18:00:00
2019-03-21 01:00:00
2019-03-21 08:00:00
2019-03-21 15:00:00
2019-03-21 22:00:00
2019-03-22 05:00:00
2019-03-22 12:00:00
2019-03-22 19:00:00
2019-03-23 02:00:00
2019-03-23 09:00:00
2019-03-23 16:00:00
2019-03-23 23:00:00
2019-03-24 06:00:00

,当然会从那时重复。

您也可能使用setInterval,例如

setInterval(() => {
    console.log('setInterval: job running!');
}, 7*60*60*1000);

尽管我不确定会多么稳定..

最新更新