Чтобы запустить задание только один раз при запуске с планировщиком Spring Quartz, вы можете использовать org.springframework.scheduling.quartz.SimpleTriggerBean
, который принимает не выражение cronExpression, а startDelay
и repeatCount
.Установите repeatCount
на 0
для отдельного выполнения (дополнительные параметры см. В документации на Quartz на SimpleTrigger).
<bean id="doJobOnceOnStartupTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="myJobDetail" />
<property name="startDelay" value="5000" />
<property name="repeatCount" value="0" />
</bean>
<bean id="myJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="myBean" />
<property name="targetMethod" value="myMethod" />
</bean>
Дополнительную информацию можно найти в документации для пружин: Глава 22. Планированиезадания с использованием кварца или таймера