
cn.micro.core.thread.MDCThreadWrap Maven / Gradle / Ivy
package cn.micro.core.thread;
import org.slf4j.MDC;
import java.util.Map;
import java.util.concurrent.Callable;
public class MDCThreadWrap {
public static Runnable runnable(Runnable runnable) {
Map contextMap = MDC.getCopyOfContextMap();
return () -> {
try {
if (contextMap != null) {
MDC.setContextMap(contextMap);
}
runnable.run();
} finally {
MDC.clear();
}
};
}
public static Callable callable(Callable callable) {
Map contextMap = MDC.getCopyOfContextMap();
return () -> {
try {
if (contextMap != null) {
MDC.setContextMap(contextMap);
}
return callable.call();
} finally {
MDC.clear();
}
};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy