【问题标题】:Updating CroneSchedule & Job Dynamically without stopping server在不停止服务器的情况下动态更新 Cron 调度作业
【发布时间】:2021-11-10 11:31:13
【问题描述】:

在外部化以下 cron 计划或动态执行它时,我需要帮助。例如,在下面的代码中,它被硬编码为每个星期六执行:cronSchedule("0 0 12 ? * SAT")。我希望将 cronSchedule() 中的值外部化,以便即使在服务器启动后,我仍然可以根据我的选择将 cron 计划更改为星期一或每天,并且它可以运行。我正在寻找 java 中的建议,而不是 spring。

public void run() throws Exception {
        // Getting a reference to a scheduler
        SchedulerFactory sf = new StdSchedulerFactory();
        Scheduler sched = sf.getScheduler();
        // job will run every week at Saturday 12 Noon Server Time
        JobDetail job = newJob(CachingJob.class).withIdentity("job1", "group1").build();
        CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchedule(cronSchedule("0 0 12 ? * SAT"))
                .build();
        Date ft = sched.scheduleJob(job, trigger);
        sched.start();
        SchedulerMetaData metaData = sched.getMetaData();
    }

感谢任何意见或建议。

【问题讨论】:

    标签: java cron crontrigger


    【解决方案1】:

    我们可以执行以下方法来重新安排工作:

    cronScheduler.rescheduleJob(cronTrigger.getKey(), newTrigger().withIdentity("customTrigger", "defaultGroup")
                           .withSchedule(cronSchedule(cronExpression)).build());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-18
      相关资源
      最近更新 更多