
Возможный дубликат:
Как заставить TaskScheduler завершить работу со сбоем, если задача возвращает результат, отличный от 0
У меня запланирована задача Windows, которая запускает консольное приложение (файл .exe), написанное мной. Я установил задачу на повтор через 5 минут до 3 раз в случае сбоя.
Планировщик задач всегда видит задачу как успешно выполненную. Даже если приложение выдает исключение.
Есть ли способ вернуть что-то из приложения, когда возникает исключение, чтобы сообщить задаче, что она не выполнена. Например, ExitCode?
Или есть ли лучший способ настроить задачу, чтобы я мог определить, произошла ли ошибка?
решение1
Если возможно, попробуйте настроить еще одну запланированную задачу через несколько минут, которая проверит, дала ли предыдущая задача желаемый эффект (проверка того, правильно ли работает X, имеет ли переменная X желаемое значение, было ли последнее изменение файла X сегодня и т. д.), и если нет, выполните ту же задачу, что и первая.
Я предполагаю, что функция «повторить попытку при сбое» нужна «если планировщик задач не смог запустить задачу». Если же он это сделал, а запущенная им программа дала сбой, то «это не его проблема». Вы просите его запуститься, и он запускает, и точка. Я так это понимаю.
Поэтому я думаю, что лучший способ — это создать одну или несколько дополнительных задач, которые будут выполнять проверку.
Если то, что вы делаете (например, загружаете файл), невозможно проверить напрямую, то вы можете попробовать указать запускаемому вами приложению, если это возможно, регистрировать каждый из своих результатов или даты успешных операций.
Если это невозможно, возможно, есть другие приложения, которые могут контролировать программу и выводить то, что она делает. Приложение, которое вы также запустите с первой задачей. Это становится сложным, но. :/