检测Quartz API + Spring中的Misfire指令

时间:2015-06-17 08:05:35

标签: spring quartz-scheduler

我正在使用Quartz API来安排从服务器收集一些数据的作业。它每5分钟发送一次心跳。这是我的配置文件。

<bean id="abcJobDetailBean" class="org.springframework.scheduling.quartz.JobDetailBean">
    <property name="jobClass"
        value="com.vxl.appanalytix.abc.scheduling.abcStatusUpdateJob" />
    <property name="jobDataAsMap">
        <map>
            <entry key="abcStatusUpdate" value-ref="abcStatusUpdate" />
            <entry key="timeout" value="5" />
        </map>
    </property>
</bean>

<bean id="abcJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="abcJobDetailBean" />
    <property name="cronExpression" value="0 0/10 * * * ?" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
        <list>
            <ref bean="abcJobTrigger" />
        </list>
    </property>
</bean>

当调度程序无法发送心跳时。我想在可配置的时间内重试心跳(在我的配置文件中指定)。如何在配置文件中指定失火时间?

1 个答案:

答案 0 :(得分:0)

而不是使用xml。您可以在Java类本身中完成它。

try {
        //--------Some operation-------------------
    } catch (Exception e) {
        JobExecutionException e2 = new JobExecutionException(e);
        // -- some logging operations----
        LOGGER.log("------------InterruptedException-----------" + e);
        e2.setRefireImmediately(true);
        throw e2;
    }