您如何每5分钟执行一次cron作业?

Mhanaz Syed |
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();

希望能帮助到你。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章