ShedLock - 不在 Kubernetes 上执行

问题描述

我使用的是带有 JDBC 集成的 Shedlock 4.22.0 版。 我有一个配置类

@Configuration
@EnableScheduling
@EnableSchedulerLock(defaultLockAtMostFor = "PT30S")public class ShedLockConfiguration {
public class ShedLockConfiguration {
   @Bean
   public LockProvider lockProvider(DataSource dataSource) {
        return new JdbcTemplateLockProvider(dataSource);
   }
}

为了执行,我使用注解@SchedulerLock 例如。

@SchedulerLock(name = "MyTask",lockAtMostFor = "PT1M",lockAtLeastFor = "PT1M")

一切都在本地 PC 上完美运行,但当应用部署在 Kubernetes (AKS) 上时,不会触发任何任务。日志是空的。应用启动后什么都不做

我还对 spring 配置添加了调试

logging:
  level:
    net.javacrumbs.shedlock: DEBUG

什么都没有记录

解决方法

执行应由 @Scheduled annotation 触发。 ShedLock 只阻止并行任务执行,它不安排任何事情。如果您有 @Scheduled 注释,请按照 troubleshooting 中的说明检查数据库中的 shedlock 表。

,

我解决了问题。问题在于服务器上的时区。由于本地 PC 上的时区不同,任务提前 1 小时锁定。我从 shedlock 表中删除了所有行

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...