我有Windows 2008服务器R2。 当时钟向后移动时,我正在使用任务计划程序在夏令时中运行作业。
该任务将运行一个PHP脚本,用于更新数据库字段(如果字段等于1,则将其更改为0(如果该字段等于0,则将其更改为1)。 这被用作开启和closures开关。
该任务的目的是在1:59:59运行来打开开关。 时钟将返回到1:00:00,然后当它再次到达1:59:59时,应closures该开关。
此时,当时钟第一次变为1:59:59时,任务不能运行,而当时钟第二次达到1:59:59时,则运行。 为什么它忽略了第一个小时,并在第二个小时运行?
有没有办法使任务在夏令时中运行两次?
我希望我的问题是有道理的。 谢谢阅读。
让我先说我不熟悉Windows Server 2008内部。
但是,当一个任务只运行一次,如果在当天夏令时(DST)结束的那天的01:59运行,我期望您的调度程序(内部)在设置它时将时间戳转换为UTC。 进行这样的转换可以防止当本地时间偏移到UTC时,作业运行两次(否则无法运行)。
看看DST切换之后,您的日常工作是否不再安排在01:59,而是从当地时间的00:59或02:59运行,这可能会很有趣。
如果是这种情况,可能会有一个选项强制调度程序使用本地时间,而不是UTC …
这个问答可能很有趣。