【发布时间】:2019-03-31 09:07:08
【问题描述】:
我有这样的代码:
private final ThreadPoolTaskScheduler threadPoolTaskScheduler; // spring
private final LockingTaskExecutor lockingTaskExecutor; // shedlock
....
threadPoolTaskScheduler.scheduleWithFixedDelay(
() -> {
lockConfiguration = ...
long start = System.currentTimeMillis();
LOGGER.info("Spring scheduler started task, awaiting shedlock ");
lockingTaskExecutor.executeWithLock((Runnable) () -> {
LOGGER.info("Shedlock acquired. duration=[{}]ms", propertyItem, System.currentTimeMillis() - start);
taks();
},
lockConfiguration);
}, someInterval);
我有 2 个节点。根据日志,我看到task() 仅适用于第一个节点的情况。在第二个节点上我只看到Spring scheduler started task, awaiting shedlock
我认为它不应该以这种方式工作,我想调查它发生的原因。
锁定释放后如何订阅事件?
shedlock 尝试获取锁多长时间?
附言
someInterval = 30 分钟
lockConfiguration:至少 = 5 分钟,最多 = 20 分钟
【问题讨论】:
标签: java spring-boot locking distributed-system shedlock