Java 在应用程序sturtup上运行一次作业的Cron表达式
我正在使用Java 在应用程序sturtup上运行一次作业的Cron表达式,java,spring,quartz-scheduler,Java,Spring,Quartz Scheduler,我正在使用org.springframework.scheduling.quartz.CronTriggerBean进行触发器作业 您能否建议cron expression在应用程序启动时只触发作业执行一次pls?与其使用调度,我更愿意通过在spring配置中定义init方法来调用您的触发器您可以使用-with-cron表达式,你不可能做到这一点,我相信实际的答案是:不,你不能。 但是,当使用Spring3.1(在编写本文时是里程碑2)时,您可以做的是创建一个可以为不同环境启用的组件。因此,您可
org.springframework.scheduling.quartz.CronTriggerBean
进行触发器作业
您能否建议cron expression在应用程序启动时只触发作业执行一次pls?与其使用调度,我更愿意通过在spring配置中定义
init方法来调用您的触发器您可以使用-with-cron表达式,你不可能做到这一点,我相信实际的答案是:不,你不能。
但是,当使用Spring3.1(在编写本文时是里程碑2)时,您可以做的是创建一个可以为不同环境启用的组件。因此,您可以根据启用的配置文件使用不同的bean和bean配置。要在启动时使用Spring Quartz调度程序仅运行一次作业,您可以使用org.springframework.scheduling.Quartz.SimpleTriggerBean
,它不采用cronExpression,而是采用startDelay
和repeatCount
。对于单个执行,将重复计数设置为0
(有关更多选项,请参阅SimpleTrigger上的Quartz文档)
更多信息可在
Hm,如果作业只触发一次,为什么要使用调度程序?我的应用程序要部署到不同的环境中。在dev环境中,我只想运行一次作业,并相应地更改配置文件。
<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>