Pourquoi le Planificateur de tâches Windows essaie-t-il de lancer plusieurs instances?

9

Nous avons un certain nombre de tâches planifiées Windows qui s'exécutent sur un serveur Web Server 2008 (pas R2) qui est dans un cluster.

Nous sommes récemment passés d'un cluster de serveurs Web d'origine à un nouveau Cluser de serveurs Web (Server 2008 - pas R2).

Le nouveau serveur Web (dans le cluster) exécutant les tâches Windows est configuré de la même manière que sur l'original que nous croyons.

MAIS nous constatons maintenant que sur le nouveau serveur Windows, le planificateur de tâches Windows semble vouloir démarrer instantanément chaque tâche trois fois.

Si nous définissons l'option de mettre en file d'attente une nouvelle tâche, nous obtenons:

L'ID d'événement 324 Task Scheduler a mis en attente l'instance "{9a1a8411-b042-45ff-8e6b-89874df230d7}" de la tâche "\ Client Reporting" et la lancera dès que l'instance "{2bcc3df6-ea3b-4453-90c2-75b8b1946388}" sera terminée.

Si nous définissons l'option pour arrêter une tâche existante, nous obtenons:

L'ID d'événement 323 Task Scheduler a arrêté l'instance "{e685a910-b32b-414e-85fd-96bbe54314a2}" "de la tâche" \ Client Reporting "afin de lancer une nouvelle instance" {4db66265-1f51-4ede-8535-ac7c3cb5c4c1} ".

Paramètres cochés:

  • Autoriser l'exécution de la tâche à la demande.

  • Exécutez la tâche dès que possible après un manquement programmé.

  • Arrêtez la tâche si vous exécutez pendant plus d'une heure.

  • Si la tâche en cours ne se termine pas à la demande, forcez-la à s'arrêter.

  • Démarrez la tâche uniquement si l'ordinateur est sous tension.

  • Arrêtez la tâche si l'ordinateur passe sur batterie.

Option sélectionnée: si la tâche est déjà en cours d'exécution - arrêtez l'instance existante.

Remarque: Nous avons déplacé les tâches d'un serveur à un autre dans le cluster pour voir s'il s'agit du Planificateur de tâches sur le serveur particulier que nous avions choisi, à l'origine du problème. Même comportement.

Cela pourrait-il être lié à la construction des nouveaux serveurs?

Nous avons des tâches très similaires configurées sur un autre cluster de serveurs qui fonctionnent bien sans tous ces démarrages multiples. En comparant ces tâches à celles ici, il ne semble pas y avoir de différence évidente en termes de paramètres à notre disposition via les options du Planificateur de tâches.

Déclencheur: la tâche doit être déclenchée quotidiennement, une fois par heure, et arrêtée si elle dépasse ce délai.

Action: exécute un fichier .bat.

Qu'est-ce qui pourrait être à l'origine de cela / où nous pouvons regarder pour voir quelle logique provoque les tâches à démarrer plusieurs fois de cette manière?

Paul H
la source
Qu'est-ce qui est configuré pour déclencher la tâche?
Bart Silverstrim

Réponses:

3

Il s'agit du problème décrit dans KB2617046 : si vous désactivez puis activez une tâche planifiée, des déclencheurs en double sont créés. Les propriétés de la tâche affichent toujours un seul déclencheur, mais vous pouvez voir que la tâche est déclenchée plusieurs fois simultanément dans l'historique des tâches.

Un correctif est disponible auprès de Microsoft. Le correctif indique que c'est pour Vista, mais il fonctionne sur Server 2008 SP2. Après avoir appliqué le correctif, vous devez désactiver puis réactiver le déclencheur sur votre tâche (en fermant la fenêtre des propriétés du déclencheur entre les deux pour appliquer les modifications) afin de vous débarrasser des doublons.

Collin K
la source
Je rencontre un problème similaire dans Windows Server 2016, où je peux voir que la tâche a démarré et s'est exécutée correctement + plusieurs dizaines de tentatives de réexécution. Malheureusement, tous les liens ci-dessus sont rompus. Il est correctement configuré et ne fonctionnera qu'une seule fois à l'intervalle défini, mais il inonde également l'historique d'avertissements. Une idée si Windows Server 2016 a un problème et un correctif similaires? Merci.
Alexei
1

Nous avons réussi à arrêter le planificateur de tâches de Windows en démarrant plusieurs processus en cochant l'option "Si la tâche échoue, redémarrez tous les:" avec les valeurs par défaut de "1 minute" et "Essayez de redémarrer jusqu'à: 3 fois".

Cela semblait contre-intuitif

  1. les tâches ne semblent pas avoir échoué (les actions qu'elles effectuent ont été exécutées plusieurs fois)

et 2. les tâches semblaient déjà décider de commencer trois fois de toute façon.

De plus, nous avons ces mêmes tâches configurées sur les serveurs Web de test et nous n'avons pas besoin de cocher cette option.

Paul H
la source
0

Pour une raison quelconque, je ne peux pas ajouter de commentaire à votre réponse, mais il est probable qu'il "échoue" car la tâche renvoie un code de sortie autre que 0. Vous pouvez résoudre ce problème en planifiant l'exécution d'un script au lieu du processus de tâche réel. Le script exécuterait le processus de tâche réel et, une fois terminé, vérifierait le code de sortie du processus par rapport à une liste de codes de réussite connus. Si c'est un succès, faites sortir le script avec le code 0 et s'il n'a pas réussi, passez le code de sortie d'échec. De cette façon, vous conservez toujours la capacité du planificateur de tâches de réexécuter la tâche en cas d'échec.

Malheureusement, il n'est pas rare que des processus exécutés avec succès retournent des codes de sortie autres que 0. Vous devrez vérifier la documentation (ou demander au développeur) quels sont les différents codes de sortie.

Mat
la source
50 représentants sont nécessaires pour commenter les questions et réponses des autres ...
EEAA
Merci EEAA. Et pour faire suite à mon message, il semble que Pual soit prêt à exécuter un script batch. Sans savoir ce qu'il y a dans son script et quel code de sortie il renvoie, il est difficile de dire pourquoi il renvoie un code autre que 0, mais mon commentaire / réponse doit toujours être correct, le planificateur de tâches suppose qu'il renverra le code de sortie 0 quand ce n'est pas le cas.
Matt
0

J'ai rencontré ce problème sur WinServer2008 R2 il y a quelques mois. J'ai essayé de nombreuses solutions mais rien n'a résolu le problème.

ce qui suit semble résoudre le problème: Sur l'application du Planificateur de tâches: sélectionnez la tâche: puis dans le menu de droite, cliquez sur «Fin», il vous demandera «Voulez-vous mettre fin à toutes les instances de cette tâche? cliquez sur 'Oui'.

J'espère que cela résoudra votre problème.

Ahmad.Net
la source
-1

Le même problème se produisait ici, toute tâche se trouve dans la file d'attente, alors parcourez toutes les tâches en cours d'exécution ou dans la file d'attente, terminez-les toutes et redémarrez le serveur, il a été corrigé

Jack
la source