Spring + Quartz - 如何为同一作业方法创建不同的触发器

时间:2016-11-12 14:02:48

标签: java spring quartz-scheduler

我正在尝试使用Spring Quartz来创建调度程序。 我需要在启动时创建一个调度程序并添加n个作业,具体取决于我从DB检索的对象。

每个对象都将使用相同的方法,但将具有不同的触发器,并且必须特定于每个对象。我找不到合适的方法来做这件事......

这是他们必须做的工作

public class Job {

@Autowired LightService lightService

private void doJob(Light light){

lightService.toggleLight(light);
}

}

所以,我有一个检索对象的方法

List<Light> lights = dao.findLights();

并且对于每个lights,我必须设置一个Job,它将具有不同的触发器。

可能吗?

1 个答案:

答案 0 :(得分:0)

如果你使用的是Spring包裹的石英,那么:

//SchedulerFactoryBean schedulerFact
Scheduler scheduler = schedulerFact.getObject();
scheduler.scheduleJob(jobDetail,trigger);

自动装配SchedulerFactoryBean schedulerFact,您可以在任何方法中使用它。

如果直接使用石英,

 //Scheduler scheduler
 scheduler.scheduleJob(jobDetail,trigger);

动态创建触发器,如果​​需要,您可以重复使用jobDetail。