【发布时间】:2019-02-17 14:28:06
【问题描述】:
我正在处理一个场景,我们有一个具有多个架构的数据库,每个客户一个架构。这允许每个客户为其工作设置不同的时间表。所有模式都有相同的作业集,只是时间表不同。
我需要编写一个 Spring-Boot 应用程序来运行来自所有模式的所有作业。
这似乎可以通过为每个架构定义不同的quartz.properties,然后为每个架构配置不同的调度程序来完成,如下所示:
@SpringBootApplication
@Configuration
public class MyApplication{
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Bean
public Scheduler schedulerA(Trigger trigger, JobDetail job) {
StdSchedulerFactory factory = new StdSchedulerFactory();
factory.initialize(new ClassPathResource("quartzA.properties").getInputStream());
Scheduler scheduler = factory.getScheduler();
scheduler.setJobFactory(springBeanJobFactory());
scheduler.scheduleJob(job, trigger);
scheduler.start();
return scheduler;
}
@Bean
public Scheduler schedulerB(Trigger trigger, JobDetail job) {
StdSchedulerFactory factory = new StdSchedulerFactory();
factory.initialize(new ClassPathResource("quartzB.properties").getInputStream());
Scheduler scheduler = factory.getScheduler();
scheduler.setJobFactory(springBeanJobFactory());
scheduler.scheduleJob(job, trigger);
scheduler.start();
return scheduler;
}
}
我的问题是,这是正确的吗?我可以在用@Configuration 注释的 SpringBootApplication 类中定义这些调度程序,并期望它能够工作(假设属性是正确的)吗?我错过了什么吗?
【问题讨论】:
标签: spring spring-boot quartz-scheduler