#java #cron #crontrigger
Вопрос:
Мне нужна помощь в экстернализации приведенного ниже расписания cron или его динамическом выполнении. Например, в приведенном ниже коде жестко прописано выполнение каждую субботу: расписание(«0 0 12 ? * СБ»). Я хочу, чтобы значение внутри cronSchedule() было внешним, чтобы даже после запуска сервера я все равно мог изменить расписание cron на понедельник или каждый день по своему выбору, и его можно было запускать. Я ищу предложения на java, а не весной.
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();
}
Любой вклад или предложение приветствуются.
Ответ №1:
Мы можем выполнить следующий метод, чтобы перенести задание :
cronScheduler.rescheduleJob(cronTrigger.getKey(), newTrigger().withIdentity("customTrigger", "defaultGroup")
.withSchedule(cronSchedule(cronExpression)).build());