Cron 表达式在应用程序启动时运行一次作业
我使用 org.springframework.scheduling.quartz.CronTriggerBean 来进行触发作业。
您能否建议cron表达式来触发作业执行仅在应用程序启动时一次?
I'm using org.springframework.scheduling.quartz.CronTriggerBean
for trigger job.
Could you propose cron expression to trigger job execution only once on application startup pls?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我相信真正的答案是:不,你不能。
然而,当使用 Spring 3.1(在撰写本文时为 Milestone 2)时,您可以做的是创建 配置文件,可以针对不同的环境启用。因此,您可以根据启用的配置文件使用不同的 bean 和 bean 配置。
I believe the actual answer is: no, you can't.
What you could do however when using Spring 3.1 (which is Milestone 2 at the time of writing) is create profiles which can be enabled for different environments. So you can use different beans and bean configurations depending on profiles you enable.
我更愿意通过在 Spring 配置中定义
init-method
来调用触发器,而不是使用调度Instead of using scheduling, I would prefer to invoke your trigger via defining an
init-method
in your spring configuration要使用 Spring Quartz 调度程序在启动时仅运行一次作业,您可以使用 org.springframework.scheduling.quartz.SimpleTriggerBean ,它不采用 cronExpression 而是采用 startDelay和一个
repeatCount
。将repeatCount
设置为0
以进行单次执行(有关更多选项,请参阅有关 SimpleTrigger 的 Quartz 文档)。其他信息可以在
spring 文档:第 22 章。使用 Quartz 或 Timer 调度作业
To run a job only once at startup with the Spring Quartz scheduler you can use the
org.springframework.scheduling.quartz.SimpleTriggerBean
which doesn't take a cronExpression but astartDelay
and arepeatCount
. Set therepeatCount
to0
for a single execution (see Quartz documentation on SimpleTrigger for further options).Additional information can be found int the
spring documentation: Chapter 22. Scheduling jobs using Quartz or Timer
您可以使用
SimpleTriggerBean
- 使用 cron 表达式,您将无法实现此目的You can use a
SimpleTriggerBean
- with a cron expression, you won't achieve this