Кварц: запускать задание один раз в день, без repeatInterval - PullRequest
1 голос
/ 02 ноября 2011

config:

<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 Ответ

2 голосов
/ 02 ноября 2011

Почему у вас даже есть 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>
...