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>