使用IJobListener获取作业异常(Quartz.NET)

时间:2010-10-28 15:11:15

标签: c# quartz-scheduler quartz.net

我在Quartz.NET中使用IJobListener来审核所有工作成功/失败。当一个作业失败时,我希望将异常带入IJobListener,这样就可以存储异常以供以后分析。

目前我的求职者是这样的:

public virtual void JobWasExecuted(JobExecutionContext context, JobExecutionException x)
        {

}

但是,即使作业的Execute方法中的所有事务都被一个带有catch(异常x)的try包围,然后我抛出,但是从不填充JobExecutionException的'x'。

是否有一种特殊的方式来实际获取作业监听器的异常?

由于

1 个答案:

答案 0 :(得分:5)

你刚刚抛出异常吗?您是否尝试将其包装在JobWasExecuted期望的正确类型中?

public virtual void Execute(JobExecutionContext context)
{
    try 
    {
      //divide by zero... or something else that causes an exception
    }
    catch (Exception e)
    {
      JobExecutionException je = new JobExecutionException(e);
      je.RefireImmediately = true;  //do something with the exception
      throw je;  //throw JobExecutionException
    }
}