spring-data-jpa - Spring Boot ShedLock“关系“shedlock”不存在”
问题描述
我将 ShedLock 添加到我的项目中,以防止多次执行预定的工作。我像下面这样配置它,但我得到了
“org.postgresql.util.PSQLException:错误:关系“shedlock”不存在”错误。
这是 lockProviderBean:
@Bean
public LockProvider lockProvider(DataSource dataSource) {
return new JdbcTemplateLockProvider(
JdbcTemplateLockProvider.Configuration.builder()
.withJdbcTemplate(new JdbcTemplate(dataSource))
.usingDbTime()
.build()
);
}
这是预定的工作:
@Scheduled(cron = "${cronProperty:0 00 23 * * *}")
@SchedulerLock(name = "schedulerLockName")
public void scheduledJob() {
..............
}
我将这些符号添加到包含 schduledJob 方法的类中:
@EnableScheduling
@Component
@Configuration
@EnableSchedulerLock(defaultLockAtMostFor = "2m")
我正在使用 Spring Data 进行数据库操作并使用以下属性:
spring.datasource.url = jdbc:postgresql://ip:port/databaseName?currentSchema=schemeName
spring.datasource.driver-class-name = org.postgresql.Driver
spring.jpa.database = postgresql
spring.datasource.platform = postgresql
spring.datasource.hikari.maximum-pool-size=5
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.username = username
spring.datasource.password = password
解决方案
您必须按照文档中的说明创建表。
推荐阅读
- typescript - DOMContentLoaded 没有在打字稿中被解雇
- python - 无法使用 python rasterio,gdal 打开 jp2(来自哨兵)
- python - 用';'分割数据框的列 复制所有静态行并对其他行进行数学运算
- ios - IOS Swift:在init方法(构造函数)之前运行一次代码块
- c# - 检测 CellEditEnding(DataGridCellEditEndingEventArgs) 的变化
- memory-management - 为什么将文件映射到内存的程序没有重大页面错误?
- rust - 有没有办法让 cargo build 总是在输出目录中包含目标的名称?
- angular - AR.js - GeoAR - 为什么 gps-camera 不是 a-camera 的注册组件?
- javascript - Javascript 数组显示单个属性的值,但不显示完整数组
- c# - 如何在 C# 控制台应用程序中捕获 USB 弹出事件