我安装了node-cron库,并在同一个文件中配置了2个cron,让它们以不同的时间间隔运行。第一个cron每45秒运行一次,第二个cron每60秒运行一次,它工作得很好。当运行60秒的cron时,问题就会发生,45秒的cron也会自动再次运行(请注意,差异是15秒)。这一切为什么要发生?
const cron = require('node-cron');
cron.schedule('*/45 * * * * *', async () => {
console.log('running 45 seconds')
})
cron.schedule('*/60 * * * * *', async () => {
console.log('running 60 seconds')
})发布于 2021-08-17 23:29:02
Cron将在“每45秒,每分钟……”运行它。
从0秒开始,然后从45秒开始。从0秒开始,然后从45秒开始。
当*/x间隔不能被父时间单位整除时(立即秒数、一小时内的分钟数等),这一点就会很明显。
例如,*/17 * * * * *
2021-08-17T23:07:00.230Z running */17 seconds
2021-08-17T23:07:17.273Z running */17 seconds
2021-08-17T23:07:34.302Z running */17 seconds
2021-08-17T23:07:51.344Z running */17 seconds
2021-08-17T23:08:00.374Z running */17 seconds
2021-08-17T23:08:17.424Z running */17 seconds
2021-08-17T23:08:34.467Z running */17 seconds
2021-08-17T23:08:51.494Z running */17 seconds
2021-08-17T23:09:00.525Z running */17 seconds
2021-08-17T23:09:17.564Z running */17 seconds要通过cron在45秒计时器上运行某项任务,您可能需要每隔15秒执行一次任务,然后需要一些逻辑来检查以前的运行。
https://stackoverflow.com/questions/68823560
复制相似问题