我使用Listeners将一系列Quartz.Net作业链接在一起:
让我们说Job A失败的方式是我不想重写这份工作,而我想要缩短工作链的其余部分。换句话说,我想在作业A失败后停止执行链的其余部分。
这样做的正确方法是什么?
答案 0 :(得分:2)
作业监听器上的JobWasExecuted()
方法应该将IJobExecutionContext
和JobExecutionException
作为Quartz提供的参数。我只是在为JobA触发JobExecutionException
时检查JobWasExecuted()
是否为空。如果它不为null,则表示在解除JobA时发生了未处理的异常,并且您无法触发JobB。这实际上将是"短路"呼叫链。
这假定未处理的异常是您确定JobA是否失败的标准(您没有指定)。如果超出此范围需要检查,您可以随时查看IJobExecutionContext
的属性以获取更多信息。