【问题标题】:Cron expression for running a task immediately then keep running after every 55 minutes用于立即运行任务然后每 55 分钟后继续运行的 Cron 表达式
【发布时间】:2017-08-16 07:42:14
【问题描述】:
我正在写一个spring scheduler,想写一个cron-expression 需求是这样的:
1) Scheduler must run when the application boots up.
2) After booting it job must keep runs after every 55 minutes.
示例:应用程序从上午 9:05 开始调度程序必须在应用程序在上午 9:05 开始时运行,之后调度程序将在上午 10:00 运行,然后在上午 10:55 运行....11:50 am...很快。
谢谢
【问题讨论】:
标签:
cron
quartz-scheduler
spring-scheduled
【解决方案1】:
Cron 表达式不能很好地与固定间隔调度相结合。这部分是因为 Quartz Scheduler 没有实现完整的 cron 语法。
如果允许,您应该使用SimpleScheduler 及其withIntervalInMinutes 方法。像这样:
yourTrigger = yourTriggerBuilder
.withSchedule(simpleSchedule()
.withIntervalInMinutes(55)
.repeatForever())
.startAt(new Date())
.build();
这将安排您的作业在安排后立即运行,然后每 55 分钟运行一次。
我不熟悉 Spring 调度选项,但我猜它有一个“每 X 秒运行一次”选项,您也可以使用它。