如何理解 shedlock 何时被获取和释放?
How to understand when shedlock was acquired and released?
我有这样的代码:
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 尝试获取锁多长时间?
P.S.
一些间隔 = 30 分钟
锁定配置:至少 = 5 分钟,最多 =20 分钟
我调查了源代码,发现 shedlock 尝试获取锁,如果锁忙,它就会跳过任务
我有这样的代码:
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 尝试获取锁多长时间?
P.S.
一些间隔 = 30 分钟
锁定配置:至少 = 5 分钟,最多 =20 分钟
我调查了源代码,发现 shedlock 尝试获取锁,如果锁忙,它就会跳过任务