我想在某个开始时间后每小时运行一次 cron 作业。目前我的 cron 作业表达式是
cronExpression = seconds + " " + minutes + " " + hours +"/1" + " " + " * * ? *" ;
(秒、分钟、小时由用户选择传入)
该作业在正确的时间开始,每小时运行一次,直到午夜,然后停止,直到第二天的某个时间,然后恢复。如何让作业持续运行而不是在午夜停止?
我明白我可以将表达式更改为
cronExpression = seconds + " " + minutes + " " * * * ? *" ;
但是它不会考虑开始时间。它会每小时运行一次。
提前致谢, 丰富
最佳答案
您的意思是您希望作业在给定时间开始,然后永远每小时运行一次吗?如果是这样,我认为 cron 表达式不是正确的方法。
如果您使用调度程序,那么启 Action 业并以给定的时间间隔永远运行应该很简单。例如,以下是 Quartz 调度程序文档中 JobBuilder 的片段。 :
JobDetail job = newJob(MyJob.class)
.withIdentity("myJob")
.build();
Trigger trigger = newTrigger()
.withIdentity(triggerKey("myTrigger", "myTriggerGroup"))
.withSchedule(simpleSchedule()
.withIntervalInHours(1)
.repeatForever())
.startAt(futureDate(10, MINUTES))
.build();
scheduler.scheduleJob(job, trigger);
关于quartz-scheduler - Cron 表达式 - 在开始时间后每小时运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16681136/