xxl-job
xxl-job copied to clipboard
最新的2.3.0版本在线程池的环境下,子线程打印日志丢失的问题
Please answer some questions before submitting your issue. Thanks!
Which version of XXL-JOB do you using?
2.3.0
Expected behavior
线程池环境中,子线程可以正常打印日志
Actual behavior
子线程打印日志丢失
Steps to reproduce the behavior
@Component public class DemoJobHandler {
private static final ExecutorService executorService = Executors.newFixedThreadPool(1);
@XxlJob("demoJobHandler")
public void execute() {
XxlJobHelper.log("执行任务开始");
executorService.execute(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
XxlJobHelper.log("执行线程开始");
try {
Thread.sleep(5 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
XxlJobHelper.log("执行线程结束");
}
});
XxlJobHelper.log("执行任务结束");
}
}
Other information
怀疑是因为线程池复用线程导致的问题,所有子线程的日志都打印到第一次执行的任务里面了
我也遇到这个问题了,线程服用导致日志乱了
用threadlocal管理的上下文,放线程池里执行肯定会乱
@xuxueli 大佬,这个线程池的问题有办法解决吗?之前版本可以用setJobLogFileName规避,新版本都没办法规避了