Warum versucht Windows Task Scheduler, mehrere Instanzen zu starten?


8

Wir haben eine Reihe von geplanten Windows-Aufgaben, die auf einem Server 2008-Webserver (nicht R2) ausgeführt werden, der sich in einem Cluster befindet.

Wir sind kürzlich von einem ursprünglichen Webserver-Cluster zu einem neuen Webserver-Cluser (Server 2008 - nicht R2) gewechselt.

Der neue Webserver (im Cluster), auf dem die Windows-Aufgaben ausgeführt werden, ist genauso eingerichtet wie das Original, von dem wir glauben.

ABER wir stellen jetzt fest, dass der Windows Task Scheduler auf dem neuen Windows Server anscheinend jede Aufgabe sofort dreimal starten möchte.

Wenn wir die Option festlegen, eine neue Aufgabe in die Warteschlange zu stellen, erhalten wir:

Ereignis-ID 324 Task Scheduler hat die Instanz "{9a1a8411-b042-45ff-8e6b-89874df230d7}" der Task "\ Client Reporting" in die Warteschlange gestellt und wird gestartet, sobald die Instanz "{2bcc3df6-ea3b-4453-90c2-75b8b1946388}" abgeschlossen ist.

Wenn wir die Option zum Stoppen einer vorhandenen Aufgabe festlegen, erhalten wir:

Ereignis-ID 323 Der Taskplaner hat die Instanz "{e685a910-b32b-414e-85fd-96bbe54314a2}" der Task "\ Client Reporting" gestoppt, um die neue Instanz "{4db66265-1f51-4ede-8535-ac7c3cb5c4c1}" zu starten.

Angekreuzte Einstellungen:

  • Ermöglichen, dass die Aufgabe bei Bedarf ausgeführt wird.

  • Führen Sie die Aufgabe so schnell wie möglich aus, nachdem ein geplanter Start verpasst wurde.

  • Beenden Sie die Aufgabe, wenn sie länger als 1 Stunde ausgeführt wird.

  • Wenn die ausgeführte Aufgabe nicht auf Anforderung beendet wird, erzwingen Sie das Beenden.

  • Starten Sie die Aufgabe nur, wenn der Computer mit Wechselstrom versorgt wird.

  • Beenden Sie die Aufgabe, wenn der Computer auf Batteriestrom umschaltet.

Ausgewählte Option: Wenn die Aufgabe bereits ausgeführt wird, stoppen Sie die vorhandene Instanz.

Hinweis: Wir haben die Aufgaben von einem Server auf einen anderen im Cluster verschoben, um festzustellen, ob der Taskplaner auf dem bestimmten Server, den wir ausgewählt haben, das Problem verursacht hat. Gleiches Verhalten.

Könnte es etwas mit dem Aufbau der neuen Server zu tun haben?

Wir haben sehr ähnliche Aufgaben auf einem anderen Servercluster eingerichtet, die ohne all diese mehrfachen Startvorgänge einwandfrei funktionieren. Vergleichen Sie diese Aufgaben mit denen hier - es scheint nichts offensichtlich anderes zu geben, was die Einstellungen betrifft, die uns über die Optionen im Taskplaner zur Verfügung stehen.

Auslöser: Die Aufgabe soll täglich einmal pro Stunde ausgelöst und gestoppt werden, wenn diese Zeit überschritten wird.

Aktion: Führt eine .bat-Datei aus.

Was könnte dies verursachen / wo können wir sehen, welche Logik bewirkt, dass die Aufgaben auf diese Weise mehrmals gestartet werden?


Was ist eingestellt, um die Aufgabe auszulösen?
Bart Silverstrim

Antworten:


2

Dies ist das in KB2617046 beschriebene Problem : Wenn Sie eine geplante Aufgabe deaktivieren und anschließend aktivieren, werden doppelte Trigger erstellt. In den Aufgabeneigenschaften wird immer noch nur ein Auslöser angezeigt. Sie können jedoch sehen, dass die Aufgabe im Aufgabenverlauf mehrmals gleichzeitig ausgelöst wird.

Es gibt einen Hotfix von Microsoft. Der Hotfix sagt, dass es für Vista ist, aber es funktioniert auf Server 2008 SP2. Nach dem Anwenden des Hotfixes müssen Sie den Trigger für Ihre Aufgabe deaktivieren und dann wieder aktivieren (dazwischen das Fenster mit den Triggereigenschaften schließen, um die Änderungen zu übernehmen), um die Duplikate zu entfernen.



Ich habe ein ähnliches Problem in Windows Server 2016, bei dem ich sehe, dass die Aufgabe gestartet und korrekt ausgeführt wurde + mehrere Dutzend Versuche, sie erneut auszuführen. Leider sind alle oben genannten Links defekt. Es ist richtig eingestellt und wird nur einmal im festgelegten Intervall ausgeführt, aber es überflutet auch den Verlauf mit Warnungen. Haben Sie eine Idee, ob Windows Server 2016 ein ähnliches Problem und eine ähnliche Lösung aufweist? Vielen Dank.
Alexei

1

Wir haben es geschafft, den Windows Task Scheduler beim Starten mehrerer Prozesse zu stoppen, indem wir die Option "Wenn die Aufgabe fehlschlägt, starten Sie alle neu:" mit den Standardeinstellungen "1 Minute" und "Versuch, bis zu 3 Mal neu zu starten" angekreuzt haben.

Dies schien als kontraintuitiv

  1. Die Aufgaben schienen nicht fehlgeschlagen zu sein (die von ihnen ausgeführten Aktionen wurden mehrmals ausgeführt).

und 2. die Aufgaben schienen ohnehin schon dreimal zu beginnen.

Außerdem haben wir dieselben Aufgaben auf Test-Webservern eingerichtet und mussten diese Option nicht ankreuzen.


0

Aus irgendeinem Grund kann ich Ihrer Antwort keinen Kommentar hinzufügen, es ist jedoch wahrscheinlich "fehlgeschlagen", da die Aufgabe einen anderen Exit-Code als 0 zurückgibt. Sie können dies beheben, indem Sie ein Skript planen, das anstelle des eigentlichen Aufgabenprozesses ausgeführt wird. Sie würden das Skript den eigentlichen Task-Prozess ausführen lassen und nach Abschluss den Exit-Code des Prozesses anhand einer Liste bekannter Erfolgscodes überprüfen. Wenn dies erfolgreich ist, lassen Sie das Skript mit Code 0 beenden. Wenn dies nicht erfolgreich war, übergeben Sie den Fehler-Exit-Code. Auf diese Weise behalten Sie weiterhin die Fähigkeit des Taskplaners, die Aufgabe erneut auszuführen, falls sie tatsächlich fehlschlägt.

Leider ist es nicht ungewöhnlich, dass Prozesse, die erfolgreich ausgeführt wurden, andere Exit-Codes als 0 zurückgeben. Sie müssten die Dokumentation (oder den Entwickler fragen) nach den verschiedenen Exit-Codes überprüfen.


50 Wiederholungen sind erforderlich, um die Fragen und Antworten anderer zu kommentieren ...
EEAA

Danke EEAA. Und um meinen Beitrag weiterzuverfolgen, scheint Pual bereit zu sein, ein Batch-Skript auszuführen. Ohne zu wissen, was in seinem Skript enthalten ist und welchen Exit-Code es zurückgibt, ist es schwer zu sagen, warum ein anderer Code als 0 zurückgegeben wird, aber mein Kommentar / meine Antwort sollte immer noch korrekt sein. Der Taskplaner geht davon aus, dass er den Exit-Code zurückgibt 0 wenn es nicht ist.
Matt

0

Ich habe dieses Problem vor ein paar Monaten auf WinServer2008 R2 festgestellt. Ich habe viele Lösungen ausprobiert, aber nichts hat das Problem gelöst.

Folgendes scheint das Problem zu lösen: Wählen Sie in der Taskplaner-Anwendung die Aufgabe aus. Klicken Sie dann im rechten Menü auf "Beenden" und Sie werden gefragt, ob Sie alle Instanzen dieser Aufgabe beenden möchten. Klicken Sie auf "Ja".

Ich hoffe, dies wird Ihr Problem lösen.


-1

Das gleiche Problem trat hier auf, wenn eine Aufgabe in die Warteschlange gestellt wurde. Durchsuchen Sie daher alle ausgeführten Aufgaben oder beenden Sie alle Aufgaben und starten Sie den Server neu, auf dem sie behoben wurde

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.