2016-09-12 3 views
1

У меня есть скрипт python, который, когда я нахожу ошибку, бросаю sys.exit (1). Это приводит к тому, что планировщик задач показывает комментарий «(0x1)» в результате последнего запуска. Успешный запуск возвращает «Операция завершена успешно (0x0)». К сожалению, хотя это не запускает задачу снова, даже если при настройке у меня установлен флажок «if task failed, restart every:». Любые мысли о том, как улучшить это?Как запустить запуск задачи задачи Windows после сбоя с помощью сценария python

Другое сообщение имеет следующий ответ, но я не могу найти, куда поместить пользовательский фильтр? под четырьмя настройками; Создание основной задачи, когда регистрируется событие, действие, Finish

Вы можете,

1 История реактивировать для Списка (если не уже) 2 на истории «Выполнена» правой кнопкой мыши «Прикрепленный Задачу Это событие ... » 3 Установите настраиваемый фильтр следующим образом:

* [System [(EventID = 201)]] и * [EventData [Данные [@ Name = 'ResultCode'] = '1']]

ответ

1

Учитывая, что история событий планировщика задач включена, вы можете добавить триггер для каждого кода выхода, для которого задача должна быть перезапущена. Триггер «в событии» с пользовательским XML-запросом. Вероятно, триггер должен быть задержан по меньшей мере на 30 секунд, чтобы предпринять попытки перезапуска задачи.

Вот пример запроса. Он ищет событие ID 201 (действие завершено) с задачей с именем «\ PyTest» (используйте полный путь, начиная с корневой папки «\») и код выхода 0xC000013A (то есть STATUS_CTRL_C_EXIT, то есть консольный процесс, убитый Ctrl + Break).

<QueryList> 
    <Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational"> 
    <Select Path="Microsoft-Windows-TaskScheduler/Operational"> 
     *[System[EventID=201]] and 
     *[EventData[Data[@Name='TaskName']='\PyTest']] and 
     *[EventData[Data[@Name='ResultCode']='0xC000013A']] 
    </Select> 
    </Query> 
</QueryList> 
+0

так, где бы я положил это, я смутился? Это совершенно новая задача? Также я предполагаю, что единственное, что я меняю здесь, это PyTest на имя запланированной задачи? –

+0

Добавьте триггер в свою * существующую задачу (а не новую задачу). Измените мой примерный запрос, чтобы использовать имя * вашей * задачи (используйте полный путь), а код выхода, который указывает, что ваша задача должна быть перезапущена. – eryksun

+0

Кажется, не работает. Мой путь «C: \ Windows \ System32 \ Tasks \ Hamilton», и я пробовал коды результатов (0x1) »,« 0x1 »и« 1 », и ни один из них не работает. В другом месте я узнал, где задача может быть расписанием. C: \ Windows \ Tasks не было моей задачи –