springboot + quartz 将quartz存储默认在内存中, 多节点部署时存在分布式问题.
改成基于数据库的quartz分布式集群解决方案, 参考官方文档, 需要为quartz单独配置dataSource, 在@Bean的方法上加上@QuartzDataSource注解
@Configuration
public class QuartzConfiguration {
@Value("${spring.datasource.driver-class-name}")
private String driverClass;
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@Bean
@QuartzDataSource
public DataSource getDataSource() {
DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
dataSourceBuilder.driverClassName(driverClass);
dataSourceBuilder.url(url);
dataSourceBuilder.username(username);
dataSourceBuilder.password(password);
return dataSourceBuilder.build();
}
}
</