我正在使用org.springframework.scheduling.quartz.CronTriggerBean
作为触发器作业。Cron表达式在应用程序sturtup上运行作业
你能提出cron表达式对应用程序启动请触发作业执行只有一次?
我正在使用org.springframework.scheduling.quartz.CronTriggerBean
作为触发器作业。Cron表达式在应用程序sturtup上运行作业
你能提出cron表达式对应用程序启动请触发作业执行只有一次?
我相信实际的答案是:不,你不能。 但是,如果使用Spring 3.1(本文是撰写本文时的里程碑2),您可以执行的操作是创建profiles,可以在不同的环境中启用它。因此,您可以根据您启用的配置文件使用不同的bean和bean配置。
您可以使用SimpleTriggerBean
- 用cron表达式,你是不能达到这个
要在启动时使用Spring Quartz调度程序只运行一次作业,您可以使用不带cronExpression但startDelay
和repeatCount
的org.springframework.scheduling.quartz.SimpleTriggerBean
。将repeatCount
设置为0
一次执行(有关更多选项,请参阅SimpleTrigger上的Quartz文档)。
<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>
的更多信息,INT的 spring documentation: Chapter 22. Scheduling jobs using Quartz or Timer
嗯发现,为什么使用调度作业是否要被一次触发? –
我有我的应用程序要部署到不同的环境。在开发环境中,我只想运行一次作业,并且想要相应地更改我的配置文件。 –