我正在使用org.springframework.scheduling.quartz.CronTriggerBean
作为触发器作业。
您是否可以建议 cron表达在应用程序启动时仅触发一次作业执行?
答案 0 :(得分:2)
我相信实际答案是:不,你不能。 但是,在使用Spring 3.1(编写本文时为Milestone 2)时,您可以执行的操作是创建profiles,可以针对不同的环境启用它。因此,您可以根据启用的配置文件使用不同的bean和bean配置。
答案 1 :(得分:1)
我宁愿通过在spring配置中定义init-method
来调用触发器,而不是使用调度
答案 2 :(得分:1)
要在启动时使用Spring Quartz调度程序仅运行一次作业,您可以使用org.springframework.scheduling.quartz.SimpleTriggerBean
,它不会使用cronExpression而只需startDelay
和repeatCount
。将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>
其他信息可以在 spring documentation: Chapter 22. Scheduling jobs using Quartz or Timer
答案 3 :(得分:0)
您可以使用SimpleTriggerBean
- 使用cron表达式,您将无法实现此