我正在处理一个场景,我们有一个包含多个模式的数据库,每个客户都有一个模式。这使得每个客户都可以为其作业设置不同的时间表。所有模式都具有相同的作业集,只是时间表不同。
我需要编写一个Spring-Boot应用程序来运行所有模式的所有作业。
似乎可以通过为每个模式定义不同的quartz.properties,然后为每个模式配置不同的调度器来完成此操作,例如:
我需要编写一个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类中定义这些调度程序,并期望它能正常工作(假设属性是正确的)吗?我有遗漏什么吗?