将MDC上下文映射复制到SimpleAsyncTaskExecutor的工作线程

时间:2018-10-29 19:48:48

标签: spring-batch mdc

我们正在将spring-core 4.1.X模块和spring-batch-core 3.0.X版本用于spring boot应用程序。我们正在使用SimpleAsyncTaskExecutor来异步处理线程。我需要将MDC信息从父线程复制到子线程。我已经看到使用ThreadDecorators作为实现此目的的最佳方法。但是,我这些在我们正在使用的spring版本中不可用。关于我们使用的Spring版本的等效方法的任何建议。如果我们无法使用TaskDecorators实现,那么关于什么是另一种最佳方法的任何建议??

1 个答案:

答案 0 :(得分:0)

我认为您指的是在Spring 4.3 中添加的TaskDecorator的使用,作为手段to create a custom MDC decorator and register it in a TaskExecutor, a process that is nicely described in this article

实际上,这是一个好主意,特别是因为SimpleAsyncTaskExecutor在Spring 4.3 中也进行了升级以支持TaskDecorator

如果您不能升级(推荐的方法),我认为扩展SimpleAsyncTaskExecutor to offer a similar hook if you see what is actually happening under the hood并不是特别困难。

Here's the original commit on version 4.3 for SimpleAsyncTaskExecutor to support TaskDecorator's

相关问题