public class SysVisitRecordScheduler extends AbstractScheduler {
private static ThreadLocal<List<String>> logHolder1 = new ThreadLocal<>();
// private static final TransmittableThreadLocal<String> threadLocal = new TransmittableThreadLocal<>();
private static InheritableThreadLocal<List<String>> logHolder = new InheritableThreadLocal<>();
@Override
protected ProcessResult innerProcess(JobContext jobContext) {
log.info("SysVisitRecordJob {} start execute", jobContext.getJobName());
String noticeWorkNos = jobContext.getJobParameters();
if (StringUtils.isBlank(noticeWorkNos)) {
return new ProcessResult(true, "success");
}
try {
return new ProcessResult(true, "success");
} catch (Exception e) {
log.error("SysVisitRecordJob execute fail: ", e);
return new ProcessResult(false, e.getMessage());
}
}
public static void main(String[] args) {
logHolder.set(Lists.newArrayList("test"));
List<String> list1 = logHolder.get();
System.out.println(list1);
CompletableFuture.runAsync(() -> {
List<String> list2 = logHolder.get();
System.out.println(list2);
});
}
}
ThreadLocal跨线程传递问题
最新推荐文章于 2024-07-29 18:00:00 发布