我正在尝试使用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
,它将具有不同的触发器。
可能吗?
答案 0 :(得分:0)
如果你使用的是Spring包裹的石英,那么:
//SchedulerFactoryBean schedulerFact
Scheduler scheduler = schedulerFact.getObject();
scheduler.scheduleJob(jobDetail,trigger);
自动装配SchedulerFactoryBean schedulerFact
,您可以在任何方法中使用它。
如果直接使用石英,
//Scheduler scheduler
scheduler.scheduleJob(jobDetail,trigger);
动态创建触发器,如果需要,您可以重复使用jobDetail。