为什么Windows Task Scheduler尝试启动多个实例?


9

我们在群集中的一个Server 2008 Web服务器(非R2)上运行许多Windows计划的任务。

最近,我们从原始的Web服务器群集迁移到了新的Web服务器Cluser(Server 2008-不是R2)。

运行Windows任务的新Web服务器(在群集中)的设置与我们认为的原始Web服务器相同。

但是,我们现在发现,在新的Windows Server上,Windows Task Scheduler似乎想立即启动每个任务3次。

如果我们设置将新任务排队的选项,则会得到:

事件ID 324任务计划程序将任务“ \ Client Reporting”的实例“ {9a1a8411-b042-45ff-8e6b-89874df230d7}”排入队列,并将在实例“ {2bcc3df6-ea3b-4453-90c2-75b8b1946388}”完成后立即启动。

如果我们设置停止现有任务的选项,则会得到:

事件ID 323任务计划程序已停止任务“ \ Client Reporting”的实例“ {e685a910-b32b-414e-85fd-96bbe54314a2}”,以便启动新实例“ {4db66265-1f51-4ede-8535-ac7c3cb5c4c1}”。

勾选的设置:

  • 允许任务按需运行。

  • 错过预定的开始后,请尽快运行任务。

  • 如果运行时间超过1小时,请停止该任务。

  • 如果正在运行的任务没有在请求时结束,则强制将其停止。

  • 仅在计算机使用交流电源时才启动任务。

  • 如果计算机切换为电池电源,请停止任务。

选定的选项:如果任务已经在运行-停止现有实例。

注意:我们将任务从群集中的一台服务器移到了另一台服务器,以查看是否是我们选择的特定服务器上的Task Scheduler引起了问题。相同的行为。

可能与新服务器的构建有关吗?

我们在另一个服务器群集上设置了非常相似的任务,这些任务可以正常运行,而无需多次启动。将这些任务与此处的任务进行比较-通过任务计划程序中的选项,对于我们而言可用的设置似乎没有什么明显不同。

触发器:计划将任务每天一次,每小时一次触发-如果超过此时间则将停止。

操作:运行一个.bat文件。

是什么导致这一点/在哪里我们可以查看一下是什么逻辑导致这种方式多次启动任务?


触发任务的设置是什么?
巴特·

Answers:


3

这是KB2617046中描述的问题:如果禁用然后启用计划的任务,则会创建重复的触发器。任务属性仍然仅显示一个触发器,但是您可以在任务历史记录中看到该任务被同时多次触发。

Microsoft提供了一个修补程序。该修补程序表示它适用于Vista,但可在Server 2008 SP2上使用。应用此修复程序后,您必须禁用然后重新启用任务上的触发器(关闭两者之间的触发器属性窗口以应用更改),以消除重复项。


1
截至2017年6月,链接断开,搜索KB会提供以下新链接:Windows Vista或Windows Server 2008中的计划任务中错误地生成了重复的触发器
Adam Dempsey

我在Windows Server 2016中遇到了类似的问题,在这里我可以看到任务已启动并正确运行,并进行了数十次尝试以再次运行。不幸的是,以上所有链接都已断开。它已正确设置,并且将仅在设置的时间间隔运行一次,但是还会向历史记录中添加警告。Windows Server 2016是否具有类似的问题和修复程序,您知道吗?谢谢。
阿列克谢

1

我们通过勾选选项“如果任务失败,请重新启动每次:”(默认值为“ 1分钟”和“尝试最多重新启动:3次”)来阻止Windows Task Scheduler启动多个进程。

这似乎违反直觉

  1. 任务似乎没有失败(它们执行的操作多次运行)

2.该任务似乎已经决定要开始三遍。

另外-我们在测试网络服务器上具有相同的任务设置,因此无需勾选此选项。


0

无论出于何种原因,我都无法在您的答案中添加注释,但是它很可能“失败”,因为任务返回的退出代码不是0。您可以通过安排脚本运行而不是实际的任务过程来解决此问题。您将让脚本运行实际的任务流程,并在脚本完成后根据已知的成功代码列表检查流程的退出代码。如果成功,则使脚本以代码0退出;如果失败,则传递失败退出代码。这样,您仍然保留任务计划程序在实际失败的情况下重新运行任务的能力。

不幸的是,成功执行的过程返回除0以外的退出代码的情况并不少见。您需要检查文档(或询问开发人员)各种退出代码是什么。


需要50名代表才能评论他人的问题和答案...
EEAA 2013年

谢谢EEAA。为了跟进我的帖子,Pual似乎已经准备好运行批处理脚本。不知道他的脚本中有什么内容以及返回的退出代码,很难说为什么返回的代码不是0,但是我的注释/答案仍然正确,任务计划程序假设它将返回退出代码。不存在时为0。
2013年

0

几个月前,我在WinServer2008 R2上遇到了这个问题。我尝试了许多解决方案,但没有解决任何问题。

似乎可以解决以下问题:在Task Scheduler Application上:选择任务:然后从右侧菜单中单击“ End”,它将询问您“是否要结束此任务的所有实例?” 点击“是”。

希望这能解决您的问题。


-1

同样的问题使这里的任何任务进入队列,因此浏览了所有正在运行的任务或正在队列中的所有任务结束,并重新启动了已修复的服务器

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.