请考虑以下情形:
在运行 Windows Server 2012 R2 的系统上,我创建了任务A在 Windows 任务计划程序中。
该任务有一个触发器,每天运行一次,从 2016 年 5 月 11 日凌晨 12:15 开始,每 15 分钟重复一次,持续 23 小时。在任务的Settings
选项卡中,该选项的复选框Run task as soon as possible after a scheduled start is missed
已选中。
现在是2016年5月12日下午5点。
如果我禁用任务A在任务计划程序界面等待16分钟再重新启用该任务,系统会认为任务错过了并运行该任务吗?
此外,如果该任务被视为错过并且系统运行该任务,那么 15 分钟的重复是否也会恢复?
我尝试在 TechNet 上研究此信息,但相关文章不谈太多细节。
如果有人知道一篇深入探讨任务计划程序的时间触发行为的文章,我将非常感激提供该资源的链接。
答案1
如果您禁用使用任务计划程序创建的任务,则没有理由运行该任务。因此,不可能错过任务(否则就没有逻辑)。如果调度程序/计划任务在系统关闭或发生其他情况后未运行,它应该会像错过一样工作。但是,如果您故意禁用它,它不会像那样运行,因为它是一个直接命令(通过任务计划程序)。因此,根据我的经验,它不会将此视为错过。它将根据时间表运行。如果您在凌晨 5 点禁用它并从凌晨 5:16 恢复,它不会立即运行任务。它将在凌晨 5:30 运行,不会出现问题。
答案2
我的电脑离线了 2 周。即使任务没有被禁用,并且错过了计划,它也没有运行任务。当然,如果错过计划则运行任务的设置已经勾选。上次运行时间显示上个月成功运行,下次运行时间是下个月。这意味着这个月,它完全错过了计划,根本没有运行。
答案3
禁用的任务不应该触发和运行。因此,任务调度程序会忽略它,而不是错过它。(而且,TS 尝试运行所有禁用的任务是没有意义的……)
错过 = 任务没有在应该被激活/启动时被 TS 激活/启动(根据任务的属性);例如,如果计算机已关闭或任务计划程序服务繁忙。如果 TS 不必根据您的整体设置启动任务,则不会将其视为 TS“错过”。除了禁用的情况外,另一个例子是:您设置为“仅在用户登录时运行”,并且计算机已关闭或注销。根据设置,任务不应该运行,因此它不是“错过”。
对于您的第二个问题:重复任务中的运行由任务计划程序服务在其自己的固定时间安排。因此,如果错过了第一次运行的开始时间(例如由于睡眠),TS 会将其安排在 TS 服务恢复后的 10 分钟。如果后续运行的开始时间是在 TS 恢复之后,那么它们将不会被错过,因此不会被移动。所以,是的,TS 可以通过推迟错过的运行来稍微打乱计划。