JobDetail job1 = JobBuilder.newJob(FirstJob.class).withIdentity("job1", "group1").build();
Trigger trigger1 = TriggerBuilder.newTrigger().withIdentity("cronTrigger1", "group1")
.withSchedule(CronScheduleBuilder.cronSchedule("*/10 * * * * ?")).build();
Scheduler scheduler1 = new StdSchedulerFactory().getScheduler();
scheduler1.start();
scheduler1.scheduleJob(job1, trigger1);
JobDetail job2 = JobBuilder.newJob(SecondJob.class).withIdentity("job2", "group2").build();
Trigger trigger2 = TriggerBuilder.newTrigger().withIdentity("cronTrigger2", "group2")
.withSchedule(CronScheduleBuilder.cronSchedule(new CronExpression("0/7 * * * * ?"))).build();
Scheduler scheduler2 = new StdSchedulerFactory().getScheduler();
scheduler2.start();
scheduler2.scheduleJob(job2, trigger2);
Thread.sleep(100000);
scheduler1.shutdown();
scheduler2.shutdown();
我试图每 5 分钟执行一次 Cron 作业,但它没有按时执行。我认为时间表达是错误的。
如何为 1、5 分钟的工作和 2 为 1 小时的工作设置时间表达式?
对于作业 1,5 分钟,您可以使用:
*/5 * * * * ?
因为第一个字段表示分钟。如果您在此字段中指定 *,则它每分钟运行一次。如果您在第一个字段中指定 */5,则它每 5 分钟运行一次,如上所示。
对于作业 2,1 小时,您可以使用:
0 */1 * * *
因为第二个字段代表小时。如果您在此字段中指定 *,则它每小时运行一次。如果您在第二个字段中指定 */5,则它每 5 小时运行一次,如上所示。
与 cron 无关,但您的代码似乎缺少传递有关 TheLostMind 注释的表达式。
作业 1 的正确句子:
Trigger trigger1 = TriggerBuilder.newTrigger().withIdentity("cronTrigger1", "group1")
.withSchedule(CronScheduleBuilder.cronSchedule(new CronExpression("*/10 * * * * ?"))).build();
希望能帮助到你。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)