首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Shedlock未能向数据库表注册新的调度程序。-抛出“任务没有锁定”错误

Shedlock未能向数据库表注册新的调度程序。-抛出“任务没有锁定”错误
EN

Stack Overflow用户
提问于 2021-12-08 18:22:52
回答 1查看 545关注 0票数 1

我通过将依赖项添加到POM.XML来配置Shedlock,如下所示:

代码语言:javascript
运行
复制
 <dependency>
        <groupId>net.javacrumbs.shedlock</groupId>
        <artifactId>shedlock-spring</artifactId>
        <version>4.29.0</version>
    </dependency>
    <dependency>
        <groupId>net.javacrumbs.shedlock</groupId>
        <artifactId>shedlock-provider-jdbc-template</artifactId>
        <version>4.29.0</version>
    </dependency>

注册了豆子:

代码语言:javascript
运行
复制
 @Bean
    public LockProvider lockProvider(DataSource dataSource, JdbcTemplate jdbcTemplate) {
        // @formatter:off
        return  new JdbcTemplateLockProvider(JdbcTemplateLockProvider.Configuration.builder()
                .withTableName("scheduler_lock_vw")
                .withJdbcTemplate(new JdbcTemplate(dataSource))
                .usingDbTime()
                .withLockedByValue("search-service")
                .build());
        // @formatter:on
    }

新增调度程序:

代码语言:javascript
运行
复制
@Component
@Slf4j
public class Scheduler {
    
        
    @Scheduled(cron = "0 * * * * *")
    @SchedulerLock(name = "elastic_reindex_scheduler", lockAtLeastFor = "PT30S", lockAtMostFor = "PT45S")
    public void shortRunningTask() {
        LockAssert.assertLocked();
        log.info("Start short running task");
    }
} 

问题是I没有看到插入到表("scheduler_lock_vw")中的名为"elastic_reindex_scheduler“的记录。行- "LockAssert.assertLocked();“抛出一个错误”在计划任务java.lang.IllegalStateException中发生意外错误:任务没有锁定。

EN

回答 1

Stack Overflow用户

发布于 2022-07-20 16:04:46

我看不到您所有的代码,但是您是否在配置类中添加了@EnableSchedulerLock注释?

例如,

代码语言:javascript
运行
复制
@Configuration
@EnableSchedulerLock(defaultLockAtMostFor = "5m")
...
public class MyConfig {
   ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70279939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档