Какъв е общоприетия начин за спиране на Quartz.Net верига от задачи?

+5 гласа
87 прегледа
попитан 2016 април 5 от Nikoleta.V. (4,090 точки)

Имам поредица Quartz.Net задачи, навързани чрез Listener-и: 

-Задача А се изпълнява... 

-после се извиква JobAListener.JobWasExecuted() методът, който изпълнява задача Б.. 

-после се извиква JobBListener.JobWasExecuted(), който извиква задача В и тн. 

Да речем че задача А се счупи по начин, че не искам да пускам от начало и искам да прекратя останалите задачи. Иначе казано, да спра изпълнението на цялата верига след като А се счупи. 

Какъв е правилният начин за това? 

1 отговор

0 гласа
отговорени 2016 април 6 от valeri.hristov (7,340 точки)
избран 2016 април 7 от Mitko Vasilev
 
Най-добър отговор
JobWasExecuted() методът на listener-а на задачата трябва да приема IJobExecutionContext и JobExecutionException като параметри, предоставени от Quartz. Аз бих проверил дали JobExecutionException е null когато JobWasExecuted() се задейства от задача А. Ако не е null, то знаеш, че е възникнал unhandled exception докато се изпълнява задача А и просто не започваш задача Б. По този начин ще се спре извикването и на цялата верига.

Така се предполага, че unhandled exception ти е критерий, по който определяш дали задача А се се счупила. Ако е нещо друго, винаги можеш да погледнеш пропъртитата на IJobExecutionContext за повече подробности.
...