Как диспетчер задач Windows в Win7 распознает неудачную задачу?
Я работаю с Windows 7, и у меня есть приложение, которое возвращает нуль (0x0) при успешном завершении и один (0x1) в ситуациях с ошибками.
Я запланировал это приложение с помощью планировщика задач Windows. Я проверил флажки "Если задача не удалась, перезапустите все" и "Попытка перезагрузки до:".
Я думал, что ненулевой код возврата из приложения будет достаточным для запуска перезапуска задачи после заданного интервала. Но ничего не происходит.
Любые идеи, что может быть проблемой? Я попытался сделать это, но ничего не нашел.
Ответы
Ответ 1
Создайте новую задачу и установите настраиваемый запрос событий следующим образом:
<QueryList>
<Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
<Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[EventID=201]] and *[EventData[Data[@Name='ResultCode']!='0']] and *[EventData[Data[@Name='TaskName']='\YOUR TASK NAME HERE']]</Select>
</Query>
</QueryList>
Задайте дополнительные настройки триггера для задержки задачи в течение периода времени, например, 15 минут.
Настройте действие новой задачи для запуска программы:
Программа/script:
schtasks
Добавить аргументы:
/Run /TN "\YOUR TASK NAME HERE"
Это приведет к тому, что исходная задача будет запущена снова через 15 минут после того, как в событии будет зарегистрирован ненулевой код результата.
Ответ 2
Я столкнулся с той же проблемой на планировщике задач Windows 2008 Server Windows Task Scheduler.
Действие возвращает ненулевой код, но планировщик рассматривает завершенную задачу:
Task Scheduler successfully completed task "\SET Tasks\Scheduled task [Backup SET Server]" , instance "{...}" , action "C:\Windows\SYSTEM32\cmd.exe" with return code 1.
Я нашел в Интернете только один ответ:
Планировщик задач Windows не проверить код выхода или любой другой значения, когда ваша задача завершается. Вы должен обрабатывать любую обработку ошибок в вашей собственной script или программе.
... в этом документе: www.onlinetoolworks.com/docs/winTaskSched.doc
Итак, теперь я думаю, что единственным способом решения этой проблемы может быть использование запуска задачи при событии. Я расследую.
Привет,
Оливье.
Ответ 3
Вы можете,
Enjoy
Тил
используемый в Win 2008 R2 (Exchange как почтовый сервер)
Ответ 4
Никто не ответил на заглавный вопрос. Кажется, что у планировщика задач нет способа обнаружить сбойную задачу? Конечно, у него должно быть что-то, потому что у него есть возможность перезапустить неудачные задачи!