有一个应用程序通过调度程序运行某个进程,就像我们有多个实例一样,我们选择shedlock来阻止其他运行相同的进程。但是,由于sleuth提供了一个 Runnable 实例,它是 TraceRunnable 并且预期是 ScheduledMethodRunnable,所以它不起作用。有什么想法可以解决这个问题吗?
类 SpringLockConfigurationExtractor
@Override
public Optional<LockConfiguration> getLockConfiguration(Runnable task) {
if (task instanceof ScheduledMethodRunnable) {
ScheduledMethodRunnable scheduledMethodRunnable = (ScheduledMethodRunnable) task;
return getLockConfiguration(scheduledMethodRunnable.getTarget(), scheduledMethodRunnable.getMethod());
} else {
logger.debug("Unknown task type " + task);
}
return Optional.empty();
}