Quartz:每天运行一次任务,不需要repeatInterval

时间:2011-11-02 14:00:40

标签: java task quartz-scheduler repeat

配置:

<bean id="simpleTrigger"
        class="org.springframework.scheduling.quartz.SimpleTriggerBean">

        <property name="jobDetail" ref="runMeJob" />
        <property name="repeatInterval" value="5000" />
        <property name="startDelay" value="1000" />

    </bean>

    <!-- Cron Trigger -->
    <bean id="cronTrigger"
        class="org.springframework.scheduling.quartz.CronTriggerBean">

        <property name="jobDetail" ref="runMeJob" />
        <property name="cronExpression" value="0 45 16 ? * MON-FRI" />

    </bean>

    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="jobDetails">
            <list>
            <ref bean="runMeJob" />
            </list>
        </property>

        <property name="triggers">
            <list>
            <ref bean="simpleTrigger" />
            </list>
        </property>
    </bean>

我需要在每个工作日的16:45执行一次任务 simpleTrigger警告我是否不使用repeatInterval,因为它不能0,但我不需要它,因为需要我的任务每天执行一次。

1 个答案:

答案 0 :(得分:2)

为什么你甚至拥有 simpleTrigger?你的cronTrigger应该足以在每个工作日的16:45执行任务。

<!-- Cron Trigger -->
<bean id="cronTrigger"
    class="org.springframework.scheduling.quartz.CronTriggerBean">

    <property name="jobDetail" ref="runMeJob" />
    <property name="cronExpression" value="0 45 16 ? * MON-FRI" />

</bean>

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="jobDetails">
        <list>
        <ref bean="runMeJob" />
        </list>
    </property>

    <property name="triggers">
        <list>
        <ref bean="cronTrigger" /> <!-- use cronTrigger instead of simpleTrigger -->
        </list>
    </property>
</bean>