У нас есть ряд запланированных задач Windows, которые выполняются на одном веб-сервере Server 2008 (не R2), который находится в кластере.
Недавно мы перешли с исходного кластера веб-серверов на новый веб-сервер Cluser (Server 2008, а не R2).
Новый веб-сервер (в кластере), на котором выполняются задачи Windows, настроен так же, как и на исходном, как мы полагаем.
НО теперь мы обнаруживаем, что в новом Windows Server планировщик задач Windows, кажется, хочет мгновенно запускать каждую задачу три раза.
Если мы установим возможность поставить новую задачу в очередь, мы получим:
Идентификатор события 324 Экземпляр в очереди планировщика задач "{9a1a8411-b042-45ff-8e6b-89874df230d7}" задачи "\ Client Reporting" и запустит его, как только экземпляр "{2bcc3df6-ea3b-4453-90c2-75b8b1946388}" завершится.
Если мы установим опцию остановки существующей задачи, мы получим:
Идентификатор события 323 Планировщик заданий остановил экземпляр «{e685a910-b32b-414e-85fd-96bbe54314a2}» задачи «\ Client Reporting», чтобы запустить новый экземпляр «{4db66265-1f51-4ede-8535-ac7c3cb5c4c1}».
Отмеченные настройки:
Разрешить запуск задачи по запросу.
Запустите задачу как можно скорее после пропуска запланированного запуска.
Остановите задачу, если она выполняется дольше 1 часа.
Если запущенная задача не завершается по запросу, принудительно остановите ее.
Запускайте задачу, только если компьютер подключен к сети переменного тока.
Остановите задачу, если компьютер перейдет на питание от батареи.
Выбранный вариант: Если задача уже запущена - остановить существующий экземпляр.
Примечание. Мы переместили задачи с одного сервера на другой в кластере, чтобы проверить, не является ли планировщик задач на конкретном выбранном нами сервере причиной проблемы. Такое же поведение.
Может быть, это связано со сборкой новых серверов?
У нас есть очень похожие задачи, настроенные на другом кластере серверов, которые нормально работают без всего этого многократного запуска. Сравнивая эти задачи с приведенными здесь, похоже, нет ничего очевидного в настройках, доступных нам через параметры в Планировщике заданий.
Триггер: задача запускается ежедневно, один раз в час - и будет остановлена, если это время превышает это время.
Действие: Запускает .bat-файл.
Что может быть причиной этого / где мы можем посмотреть, какая логика заставляет задачи запускаться несколько раз таким образом?
Это проблема, описанная в KB2617046: если вы отключите, а затем включите запланированное задание, будут созданы повторяющиеся триггеры. В свойствах задачи по-прежнему отображается только один триггер, но вы можете видеть, что задача запускается несколько раз одновременно в истории задач.
Существует исправление от Microsoft. В исправлении говорится, что оно предназначено для Vista, но работает на Server 2008 SP2. После применения исправления необходимо отключить, а затем повторно включить триггер для вашей задачи (закрыв окно свойств триггера между ними, чтобы применить изменения), чтобы избавиться от дубликатов.
Нам удалось остановить запуск нескольких процессов планировщиком задач Windows, установив флажок «Если задача не выполняется, перезапускать каждые:» со значениями по умолчанию «1 минута» и «Попытка перезапуска до: 3 раз».
Это казалось нелогичным, поскольку
и 2. задачи, казалось, уже трижды решались на запуск.
Также - у нас есть те же самые задачи, настроенные на тестовых веб-серверах, и нам не нужно отмечать эту опцию.
По какой-то причине я не могу добавить комментарий к вашему ответу, однако он, скорее всего, "не сработает", потому что задача возвращает код выхода, отличный от 0. Вы можете исправить это, запланировав запуск сценария вместо фактического процесса задачи. Вам нужно, чтобы сценарий запускал фактический процесс задачи, а после его завершения проверял код выхода процесса по списку известных кодов успеха. Если он успешен, завершите сценарий с кодом 0, а если он не был успешным, передайте код выхода сбоя. Таким образом, вы по-прежнему сохраняете возможность планировщика задач повторно запустить задачу в случае ее сбоя.
К сожалению, нередко процессы, которые успешно выполняются, возвращают коды выхода, отличные от 0. Вам нужно будет проверить документацию (или спросить разработчика) о различных кодах выхода.
Я столкнулся с этой проблемой на WinServer2008 R2 пару месяцев назад. Я пробовал много решений, но ничего не помогло.
следующее, кажется, решает проблему: В приложении планировщика задач: выберите задачу: затем в правом меню нажмите «Конец», он спросит вас: «Вы хотите завершить все экземпляры этой задачи?» нажмите «Да».
Надеюсь, это решит вашу проблему.
Та же проблема возникала и здесь: любая задача попадает в очередь, поэтому просмотрел все задачи, которые выполнялись или находились в очереди, завершил их все и перезапустил сервер, это было исправлено