Мне нужна помощь. Я использую Quartz Scheduling и настроил CronTrigger для работы каждую ночь в 22:00. Я использую JDBCJobStore, чтобы воспользоваться преимуществами кластеризации.
Работа выполняется в 22:00 каждую ночь, но я хочу иметь возможность программно вызывать ее, чтобы запускать ее на лету, если это необходимо, но я все еще хочу воспользоваться преимуществами кластеризации (т. Е. Я не хочу, чтобы несколько человек были в состоянии запустить работу).
Есть ли способ получить CronJob из магазина и запустить его, но при этом воспользоваться возможностью кластеризации? Например, теперь 1-й сервер, который запускает задание, запускается, когда другой сервер в кластере не активируется, если задание уже запущено.
Я могу сделать это, как это, но это начинается как отдельная работа .... это не то, что я хочу.
scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
/ Create the JobDetail
JobDetail jobDetail = new JobDetail("cronTrigger", Scheduler.DEFAULT_GROUP, MyCronJob.class);
// Create a trigger that fires once right away
Trigger trigger = TriggerUtils.makeImmediateTrigger(0, 0);
trigger.setName("FireOnceNowTrigger");
scheduler.scheduleJob(jobDetail, trigger);