2009-11-16 6 views
0

Мне нужна помощь. Я использую Quartz Scheduling и настроил CronTrigger для запуска каждую ночь в 10 вечера. Я использую JDBCJobStore, чтобы воспользоваться Кластеризацией.Как вызвать CronTriggerBean, хранящийся в JDBCJobStore?

Работа выполняется в 10 вечера каждый вечер, но я хочу, чтобы иметь возможность запрограммировать работу, чтобы запустить ее на лету, если это необходимо, но я все же хочу воспользоваться преимуществами кластеризации (Т.е. я не хочу, чтобы несколько человек способность выполнять задание).

Есть ли способ получить CronJob из магазина и запустить его, все еще используя преимущества функции кластеризации? Например, первый сервер, который просыпает работу, запускается, когда другой сервер в кластере просыпается, он не запускается, если задание уже запущено.

Я могу сделать это вот так, но начинаю как отдельное задание .... это не то, что я хочу.

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); 

ответ

0

Предполагая, что вы знаете имя задания, которое вы уже сохранили («storedJob»), это работает для вас?