0

我有一个使用 Spring 的 @Scheduled 注释使用预定作业的 Spring Boot 应用程序。我已经通过 net.javacrumbs.shedlock 添加了@SchedulerLock,由 net.javacrumbs.shedlock:shedlock-provider-jdbc-template 支持集成测试使用wiremock 服务器。添加 SchedulerLock 后,测试变得异常缓慢,我看到以下日志:

[Connector-Scheduler-5ed379c0] DEBUG wiremock.org.eclipse.jetty.io.WriteFlusher - ignored: WriteFlusher@4d03e612{IDLE}->null
    java.util.concurrent.TimeoutException: Idle timeout expired: 30001/30000 ms
        at wiremock.org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:171)
        at wiremock.org.eclipse.jetty.io.IdleTimeout.idleCheck(IdleTimeout.java:113)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

当我删除 SchedLock 时,一切正常。知道可能是什么问题吗?

示例代码:

@EnableSchedulerLock(defaultLockAtMostFor = "10m") // This is in Spring Boot's main Application class

@SchedulerLock(name = "test1", lockAtLeastFor = "5m", lockAtMostFor = "10m") // This one in the scheduler class method level

环境:schedlock 版本:4.15.1 Spring boot:2.3.7

谢谢

4

0 回答 0