【问题标题】:Java Quartz Refiring from ExceptionJava Quartz 从异常中重新触发
【发布时间】:2018-02-12 22:18:10
【问题描述】:

我们有一个要求,如果作业面临 Java 异常,我们需要重新启动 Quartz 作业,最多 5 次。

但是当我们尝试从主异常中调用这些方法中的任何一个时

JobExecutionException je;
je.refireImmediately();
je.setRefireImmediately(true);

不会重新触发。

使用的Quartz版本是1.7.3

请帮忙。

【问题讨论】:

    标签: java quartz


    【解决方案1】:

    你很接近,但你需要重新抛出你新创建的异常。此代码在 2.1.6 中有效,但在 1.X 中,您可能需要在 JobDataMap 中手动增加/存储重新触发计数。

    try {
        whatever();
    } catch (Exception e) {
        // Retry this job up to 5 times.
        if (context.getRefireCount() < 4) {
            logger.warn("job_failure attempt={}", context.getRefireCount());
            throw new JobExecutionException(e, true);
        } else {
            throw e;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 2016-03-08
      • 2011-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      相关资源
      最近更新 更多