quartz-scheduler - Cron 表达式 - 在开始时间后每小时运行一次

标签 quartz-scheduler cronexpression

我想在某个开始时间后每小时运行一次 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/

相关文章:

插入枚举值的 Java 泛型?

c# - 类类型的反射(reflect)

java - Seam Quartz Dispatcher 未在给定 cron 表达式的秒和分钟字段上触发

每天 12 小时执行 cron 触发器的 Cron 表达式?

java - 动态创建多个CronTriggerBean bean

c# - Cron 表达式 - 是否有任何库可以生成然后/将它们转换为人类可读的形式?

java - 使用 Spring 包装类相对于 Quartz 调度程序库的优势

java - 批处理作业未执行

java - Java 批处理程序的 crontab 的好替代品?

c# - 根据用户输入以编程方式创建 Hangfire cron 表达式