2009-11-16 2 views
0

도움이 필요합니다. Quartz Scheduling을 사용 중이며 매일 밤 오후 10시에 CronTrigger를 실행하도록 구성했습니다. JDBCJobStore를 사용하여 클러스터링을 이용하고 있습니다.JDBCJobStore에 저장된 CronTriggerBean을 호출하는 방법은 무엇입니까?

매일 밤 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")를 저장 한 작업의 이름을 알고 않는 가정?

Trigger trigger = TriggerUtils.makeImmediateTrigger(0, 0); 
trigger.setName("FireOnceNowTrigger"); 
trigger.setJobName("storedJob"); 
trigger.setJobGroup(Scheduler.DEFAULT_GROUP); 

scheduler.scheduleJob(trigger);