【问题标题】:Cron schedule to run at 11:55, 12:00 and 12:05Cron 计划在 11:55、12:00 和 12:05 运行
【发布时间】:2019-07-22 17:38:40
【问题描述】:

我正在尝试创建一个在 11:55、12:00 和 12:05 运行的 Cron 计划,并使用以下表达式-

 0 0,5,55 11,12 ? * * *

但是,上述计划在 11:00、11:05、11:55、12:00、12:05、12:55 运行。不知道我错过了什么。

【问题讨论】:

  • 不确定是否可以在单个表达式中。我猜你需要两个表达式,一个用于 11:55,一个用于 12:00 和 12:05,因为大多数实现不支持从 55 到 05 的范围(他们将其翻转 (05-55) 而不是拆分它(55 -60 和 00-05)。

标签: cron quartz-scheduler


【解决方案1】:

您可以使用 2 个触发器来执行 YourJob.class

    public class Scheduler extends GenericServlet {

        @Override
        public void init(ServletConfig config) throws ServletException {
            super.init(config);
            try {
                // this is YOUR job
                JobDetail job = JobBuilder.newJob(YourJob.class).build();
                Trigger trigger1 = TriggerBuilder
                        .newTrigger()
                        .forJob(job)
                        .withSchedule(
                                CronScheduleBuilder.cronSchedule(
                                        "0 55 11 ? * * *"
                                )
                        ).build();
                Trigger trigger2 = TriggerBuilder
                        .newTrigger()
                        .forJob(job)
                        .withSchedule(
                                CronScheduleBuilder.cronSchedule(
                                        "0 0,5 12 ? * * *"
                                )
                        ).build();
                Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
                scheduler.start();
                // run at 11:55 every day
                scheduler.scheduleJob(job, trigger1);
                // run at 12:00 and 12:05 every day
                scheduler.scheduleJob(job, trigger2);
            } catch (SchedulerException e) {
                Logger.getLogger(Scheduler.class).error(e);
            }
        }

        @Override
        public void service(ServletRequest req, ServletResponse res) {
            // ...
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多