任务计划程序在时钟偏移场景下的处理逻辑咨询
任务计划程序在时钟偏移场景下的处理逻辑咨询
嘿,这个问题问得很实用,刚好之前折腾过英国夏令时切换时任务计划的执行情况,结合实际测试和相关说明,给你捋清楚:
当任务计划程序使用本地时区而非UTC时,夏令时的两次时钟调整确实会影响任务执行,具体表现如下:
三月时钟调快(凌晨1点直接跳到2点):
这段被“跳过”的1点到2点时间窗口里,所有安排在这个时间段的任务都不会被执行。因为系统时钟直接跨过了这段时间,任务计划程序只会跟着当前系统时间走,不会回溯去补跑错过的任务。十月时钟调慢(凌晨2点倒回1点):
这段重复的1点到2点时间窗口,安排在这个时间段的任务会执行两次。第一次是系统第一次走到1点-2点时触发,第二次是时钟倒回后再次经过这个时间段时触发——任务计划程序会识别到两次时间匹配,所以会触发两次执行。
如果想要彻底避开夏令时带来的任务执行异常,最稳妥的方案就是把任务计划程序的时区设置为UTC,毕竟UTC没有夏令时切换,时间是连续线性的,自然不会出现跳时或重复执行的问题。
备注:内容来源于stack exchange,提问作者variable




