大佬教程收集整理的这篇文章主要介绍了Springboot 和 Quartz Scheduler 是否使用相同的 HikariCP?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个关于 springboot、quartz 调度器和 HikariCP 的问题。我对这个领域比较陌生,并试图了解关系和工作。 我已经解决了许多与使用 HikariCP 的 Springboot HikariCP 或 Quartz 调度程序相关的问题,但没有一个能够回答我的问题。
我有一个具有以下配置的应用程序
#Database propertIEs
spring.datasource.url = jdbc:MysqL://localhost:3306/demo?user=root&password=root&useSSL=false&serverTimezone=UTC
spring.datasource.username = root
spring.datasource.password = root
spring.jpa.propertIEs.hibernate.dialect = org.hibernate.dialect.MysqL5InnoDBDialect
#Hikari
spring.datasource.hikari.minimumIDle=5
spring.datasource.hikari.maximumPoolSize=20
#quartz setTings
spring.quartz.propertIEs.org.quartz.jobStore.datasource = quartzDatasource
spring.quartz.propertIEs.org.quartz.datasource.quartzDatasource.driver = com.Mysql.cj.jdbc.Driver
spring.quartz.propertIEs.org.quartz.datasource.quartzDatasource.provIDer=hikaricp
spring.quartz.propertIEs.org.quartz.datasource.quartzDatasource.URL = jdbc:MysqL://localhost:3306/demo?user=root&password=root&useSSL=false&serverTimezone=UTC
spring.quartz.propertIEs.org.quartz.datasource.quartzDatasource.user = root
spring.quartz.propertIEs.org.quartz.datasource.quartzDatasource.password = root
spring.quartz.job-store-type = jdbc
spring.quartz.propertIEs.org.quartz.threadPool.thReadCount=20
默认情况下,springboot2 使用 HikariCP。我已将池大小设置为 20。 在石英调度程序中,我也将其设置为使用 HikariCP。 现在我的问题是
提前致谢。
抱歉,没有足够的时间回复完整的答案,但也许这会有所帮助:
在 Quartz 中重用 Spring 的数据源是可能的,并且自 Spring 框架 4.x 以来一直如此。
默认情况下,Quartz 根据提供的数据源属性创建一个新的连接池。
即使你指示 Quartz 使用连接池提供者(因为它支持 c3p0 和 HikariCP 开箱即用),它仍然会使用提供者创建一个新的连接池。这一切都归结为 Quartz 的 JobStoreCMT
类的实现细节,它通常是 Spring 应用程序中默认使用的 JobStore 实现。 JobStoreCMT
将始终创建自己的池。
在 Quartz 中重用 Spring 的数据源非常简单,在 Spring 中使用 schedulerFactoryBean
。它通过 setDatasource
接受 Spring 管理的数据源,如下面的代码片段
@Configuration
public class schedulerConfig {
@Autowired private Datasource datasource;
@Bean
public schedulerFactoryBean schedulerFactoryBean(){
schedulerFactoryBean factory = new schedulerFactoryBean();
factory.setDatasource(datasourcE);
// ... set other properties
return factory;
}
在内部,当数据源提供给 schedulerFactoryBean
时,Spring Framework 指示 Quartz 使用 LocalDatasourceJobStore(Spring 提供的作业存储,扩展 Quartz 的 JobStoreCMT)来管理作业。 LocalDatasourceJobStore
有一个自定义 Quartz 连接提供程序,它重用提供的数据源,而不是创建新连接。
在 Spring Boot 2 中,这更简单,因为它使用应用程序的默认数据源进行所有自动装配。一个只需要配置 Quartz 使用 JDBC 存储类型:
spring.quartz.job-store-type=jdbc
在属性文件中将 Quartz 配置为再次使用数据源,可能会干扰这种自动装配行为,并导致使用新的连接池创建 Quartz 管理的数据源。
以上是大佬教程为你收集整理的Springboot 和 Quartz Scheduler 是否使用相同的 HikariCP?全部内容,希望文章能够帮你解决Springboot 和 Quartz Scheduler 是否使用相同的 HikariCP?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。