重新启用后计划任务不会运行

重新启用后计划任务不会运行

我有很多计划任务,例如每 5 分钟运行一次。触发器定义如下。

每天 10:35 - 触发后,每 1 小时重复一次

最近我禁用并再次启用它们。但是,我注意到在我再次启用它们后,这些任务不再运行。列下次运行时间是正确的,但那时什么也没有发生。之后下次运行时间通过,任务不运行,列上次运行时间没有更新,因为(显然)任务没有运行。

我可以让任务运行的唯一方法是进入其属性并将计划时间更新为(不久的)将来的某个时间:

在此处输入图片描述

所以我的直觉是,问题在于当我启用它们时,时间已经过去了。不过,这在过去并不是一个问题。只有在迁移到这个新的 Windows Server 2019 Standard (10.0.17763) 服务器后,这个问题才开始出现。

顺便说一下,这些计划任务是从另一台服务器迁移过来的,我通过 XML 文件导入将它们导入。我查看了这些 XML 文件,似乎没有什么可疑之处。奇怪的是,将开始时间设置为未来的某个时间可以解决这个问题。然而,这对我来说不是一个可行的解决方案,因为我有很多任务,我需要每月禁用并重新启用它们。正如我所说,在我迁移的服务器上,这不是一个问题。

也没有显示错误代码上次运行结果错过开始后:

在此处输入图片描述

我在这里分享导出和编辑的 XML:https://pastebin.com/CGgsjwza

我看到有人遇到类似的问题,但我不确定这些是否适用于我的情况:

答案1

您认为不正确的解决方案实际上正是您需要做的。

您必须为循环开始的下一个时刻设置下一个执行时间(因此通常您需要将日期更改为明天),然后等待该时刻过去,可选择根据需要提前或多次运行任务。

原因如下:每次执行任务时,它都会为下一次执行规划一个新的(隐藏的)任务。由于当前没有规划任何任务,因此什么也不会发生。通过至少执行一次任务,它可以规划其隐藏的后继任务。

答案2

我找到了一个更具体的答案来回答这个难题。简而言之,你需要将任务设置为“一度”而不是“日常的”如果您希望它们在重新启用后恢复一个间隔。如果将它们设置为“每日”,它们将忽略重复间隔,直到开始时间再次到来。

更完整的答案在这里:

https://superuser.com/a/1819607/52280

相关内容