Запрос на запуск игнорирован, экземпляр уже запущен.

Вопрос или проблема

Я создал запланированную задачу, которая выполняется каждую минуту, бесконечно.

Задача запускает пакетный файл, который перемещает файлы между двумя серверами. Она выполняется с определенной учетной записью домена.

Задача занимает до 10 секунд на выполнение.

Когда задача запланирована в первый раз, она работает правильно в течение нескольких часов. В какой-то момент она начинает запускать n экземпляров одной и той же задачи, и многие из них неудачны, как видно ниже. Через несколько часов запущенные экземпляры составляют 2 или 3, но потом это число достигает до 9 экземпляров.

проблемный запуск

После изменения задачи и ее сохранения (без фактического изменения чего-либо) она снова корректно работает в течение нескольких дней.

правильный запуск

Та же задача корректно работала на Windows Server 2012 R2. У меня есть проблемы с Windows Server 2019 и 2022

1-я попытка исправления

Изменение задачи “на продолжительность” и установка 1 день вместо бесконечно, кажется, на 99,9% решило проблему
задача "на продолжительность"

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

Я сталкиваюсь с той же проблемой со скриптом, который я создал около недели назад, и не мог понять, почему это происходит, пока только что не осознал. Везде, где я искал в интернете, даются неясные ответы и решения, подобные вашим, но никогда не объясняется истинная причина происходящего. Но, я думаю, это связано с настройкой задачи на выполнение “бесконечно”. Например, моя задача выполнялась ежедневно начиная с 14:00, повторяясь каждый час, бесконечно. Затем я проверял её через день или два и находил предупреждения о параллельных запросах на выполнение. Что я только что осознал, так это то, что Планировщик задач перезапускает весь процесс в 14:00 каждый день. Да, она продолжает выполняться каждый час, но создает новый “процесс задачи” для выполнения одновременно с уже настроенной задачей.

Так, в первый день всё работает гладко. Начиная с 14:00, задача выполняется каждый час и завершается, как должно. Затем на второй день, в 14:00, начальная задача продолжает выполняться каждый час бесконечно, но так как она настроена на начало в 14:00 каждый день, она создает новый процесс задачи для выполнения. Так, теперь у меня есть 2 задачи, работающие бесконечно, каждый час. На третий день то же самое — 3 задачи запускаются в 14:00, бесконечно, каждый час. И так далее… Это не имеет отношения к скрипту, это просто буквальная интерпретация работы планировщика задач. У меня пока нет проверенного обходного пути, но, надеюсь, это даст вам понять, почему это происходит.

.

Ответ или решение

Причина проблемы, с которой вы столкнулись, заключается в том, как планировщик задач Windows обрабатывает задачи, которые настроены на повторение и запуск в течение долгого времени, например, "на протяжении всего дня" или "бесконечно". Из предоставленного описания видно, что задача была настроена на выполнение каждые 10 секунд с повторением каждые 1 минуту, и поначалу она работает нормально, но позже начинает запускать несколько экземпляров, что приводит к ошибкам. Давайте разберем ситуацию, используя формулу TEA (Теория, Пример, Применение).

Теория:

Планировщик задач Windows предназначен для автоматизации выполнения задач в назначенное время. Каждая задача может быть настроена для запуска по расписанию, который может включать повторное выполнение через определенные интервалы времени. Однако, может возникнуть путаница, если задача настроена на непрерывную или повторяющуюся работу "бесконечно", особенно если она пересекается с временем начала нового "цикла".

Когда вы создаете задачу с параметром "запускать бесконечно" и одновременно устанавливаете запускаемый триггер в определенное время, например, каждый день в 2 часа дня или каждую минуту, планировщик рассматривает это как независимые события. Поэтому, когда наступает новое начало времени, планировщик может запустить новый экземпляр этой же задачи, что в свою очередь создает конфликт с уже работающей версией.

Пример:

Рассмотрим пример, который вы предоставили. Задача предписана запускаться каждые 10 секунд и повторяться каждую минуту. В течение первого дня, все происходит нормально: задача запускается, выполняется и завершается в ожидаемое время. Однако, когда начинается новый день (или, точнее новый цикл согласно триггеру), планировщик запускает очередной цикл выполнения задачи, не завершая предыдущий, если он все еще активен.

Таким образом, в представленных вами ситуациях, начиная со второго дня, образуется "наложение" задач: в 2 часа дня (или другое время начального триггера) запускается новая инстанция задачи, в то время как предыдущие все еще функционируют. Это увеличивает количество одновременных запускаемых процессов, что в конечном итоге приводит к перегрузке сервера и вызывает сбои и конфликты.

Применение:

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

  1. Ограничить максимальное количество одновременных экземпляров: В настройках планировщика задач предусмотрена опция ограничения на одновременных запусках экземпляров задачи. Установите ее значение на 1, чтобы никогда не запускать больше одной инстанции одновременно.

  2. Изменить настройки расписания: Если задача запланирована на ежедневный запуск и выполняется в течение дня, убедитесь, что она завершена до ее следующего запуска. Это можно сделать благодаря инкременталам повторения. Полезно установить задачу так, чтобы она запускалась с определенной частотой, избегая постоянного "наложения" задач каждые 24 часа.

  3. Используйте параметр "остановка предыдущей задачи при необходимости": Иногда логичнее завершать текущую задачу прежде, чем она пересечется с новой. Эта опция поможет избегать нежелательных повторений.

  4. Установите временной интервал выполнения: Если ваша задача действительно должна выполняться только в определенный период каждого дня, установите четкое время начала и завершения.

  5. Мониторинг и логирование: Добавьте в задачу подробную запись логов с информацией о каждом старте и завершении выполнения для лучшего отслеживания аномалий.

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

Оцените материал
Добавить комментарий

Капча загружается...