如何调用存储在JDBCJobStore中的CronTriggerBean?

时间:2009-11-16 16:00:58

标签: quartz-scheduler crontrigger

我需要一些帮助。我正在使用Quartz Scheduling并配置了一个CronTrigger,每晚10点运行。我正在使用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);

1 个答案:

答案 0 :(得分:0)

假设您知道已存储的作业名称(“storedJob”),这对您有用吗?

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

scheduler.scheduleJob(trigger);