如何强制JobRunr(Spring Boot 3 Starter)使用PostgreSQL而非Redis存储?
强制JobRunr使用PostgreSQL作为存储提供者(已集成Redis时)
当JobRunr的Spring Boot Starter检测到Redis依赖时,会自动优先选择Redis作为存储提供者,要强制继续使用PostgreSQL,可通过以下两种方式实现:
方式一:通过配置文件指定存储类型
在application.properties或application.yml中添加配置,显式指定使用SQL存储:
- properties格式:
jobrunr.storage.provider=sql # 若存在多个数据源,可指定PostgreSQL对应的数据源bean名称(默认是dataSource) jobrunr.sql.datasource-bean-name=dataSource
- yml格式:
jobrunr: storage: provider: sql sql: datasource-bean-name: dataSource
方式二:通过Java配置类显式定义SQL存储提供者
创建自定义配置类,手动注册SqlStorageProvider bean,让Spring优先使用该实现:
import org.jobrunr.storage.sql.SqlStorageProvider; import javax.sql.DataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class JobRunrConfiguration { @Bean public SqlStorageProvider jobRunrSqlStorageProvider(DataSource dataSource) { return SqlStorageProvider.using(dataSource); } }
注意事项
确保项目中已正确引入PostgreSQL相关依赖(如spring-boot-starter-jdbc),且PostgreSQL数据源的配置信息正确,JobRunr才能正常初始化SQL存储。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

