Почему планировщик задач Windows пытается запустить несколько экземпляров?

У нас есть ряд запланированных задач 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.

Что может быть причиной этого / где мы можем посмотреть, какая логика заставляет задачи запускаться несколько раз таким образом?

6 ответов

Это проблема, описанная в KB2617046: если вы отключите, а затем включите запланированную задачу, будут созданы дублирующие триггеры. В свойствах задачи по-прежнему отображается только один триггер, но вы можете видеть, что задача запускается несколько раз одновременно в истории задач.

Существует исправление, доступное от Microsoft. Исправление говорит, что это для Vista, но оно работает на Server 2008 SP2. После применения исправления необходимо отключить, а затем снова включить триггер в своей задаче (между окнами свойств триггера закрыть, чтобы применить изменения), чтобы избавиться от дубликатов.

Нам удалось остановить планировщик задач Windows, запускающий несколько процессов, отметив опцию "Если задача не удалась, перезапустите каждые:" со значениями по умолчанию "1 минута" и "Попытка перезапустить до: 3 раза".

Это казалось нелогичным, как

  1. задачи, по-видимому, не срабатывают (выполняемые ими действия выполнялись несколько раз)

и 2. задачи, казалось, уже решили начать трижды.

Кроме того - у нас есть те же самые задачи, настроенные на тестовых веб-серверах, и нам не нужно было отмечать эту опцию

Я столкнулся с этой проблемой на WinServer2008 R2 пару месяцев назад. Я пробовал много решений, но ничего не решило проблему.

кажется, что решение этой проблемы решается следующим образом: В приложении планировщика заданий: выберите задачу: затем в правом меню нажмите "Завершить", она спросит вас: "Вы хотите завершить все экземпляры этой задачи?" нажмите "Да".

Я надеюсь, что это решит вашу проблему.

По какой-то причине я не могу добавить комментарий к вашему ответу, однако, скорее всего, он "не удался", поскольку задача возвращает код завершения, отличный от 0. Вы можете исправить это, запланировав запуск сценария вместо фактического процесса задачи. Вы бы заставили скрипт выполнить фактический процесс задачи, а после его завершения проверить код завершения процесса по списку известных кодов успеха. Если это успешно, сделайте сценарий выхода с кодом 0, и если это не было успешно, передайте код завершения сбоя. Таким образом, вы по-прежнему сохраняете возможность планировщика задач перезапускать задачу в случае, если она действительно не удалась.

К сожалению, это не редкость для процессов, которые успешно выполняются для возврата кодов выхода, отличных от 0. Вам необходимо проверить документацию (или спросить разработчика) о том, что представляют собой различные коды выхода.

Более 10 лет спустя... Мы обнаружили ту же проблему, что и описанная ОП, но в нашем случае это был простой запуск самого задания вручную, чтобы проверить, действительно ли оно работает!

Оказалось, что это не так, и работа была прервана из-за ошибки файла в формате JSON. Не было необходимости создавать отдельный сценарий BAT/CMD для запуска EXE. Мы только что исправили ошибку в программе и файле JSON, и все работало нормально, без многочисленных проблем с запуском, как описано.

Следует иметь в виду, что планировщик задач будет пытаться запуститься снова и снова, если исходная программа, которую вы вызываете, завершается с ошибкой.

Та же самая проблема возникала здесь, когда любая задача попадает в очередь, поэтому просмотрела все запущенные задачи или завершила их в очереди и перезапустила сервер, это было исправлено.

Другие вопросы по тегам