Поведение необработанного исключения Quartz.net Job

Я внедряю планировщик кварца.net в свой проект, и у меня есть несколько вопросов о работе этой библиотеки:

  1. Что произойдет, если одно задание вызовет исключение без блока catch (необработанное исключение)? Приведет ли это к завершению процесса и выгрузке AppDomain? Пострадают ли другие рабочие места?
  2. Пытается ли библиотека Quartz.net перезапустить задания, вызвавшие необработанные исключения? Или я должен реализовать это вручную в моем проекте?

Спасибо.


person Johnny_D    schedule 05.07.2012    source источник


Ответы (1)


Из того, что я могу определить, я сам являюсь пользователем Quartz.net.

  1. Если ваша работа (или сам кварц) вызывает необработанное исключение, как и все программы .net2 или более поздние версии, она займет наш домен вашего приложения. Вы можете попробовать использовать обработчик AppDomain.UnhandledException.
  2. Я думаю, что по умолчанию RequestRecovery имеет значение true, но вы можете установить для него значение false при планировании задания.
person Richard Mitchell    schedule 30.08.2012
comment
Также здесь есть более подробная информация о том, как обеспечить, чтобы ваша работа перехватывала исключения > stackoverflow.com/questions/3246277/ - person Richard Mitchell; 30.08.2012
comment
Это больше не так с текущей версией Quartz.NET - исключение (VetoedException) перехватывается, и это тихое завершенное задание и return... больше не всплывает в AppDomain... - person ; 24.10.2013
comment
См. мой блог @ andreas.niedermair.name/unhandeled-exception-in -quartz-net-job для более подробной информации о реализации! - person ; 24.10.2013