如何通过XML配置在Task Executor中设置Task Decorator?

时间:2019-01-07 12:05:10

标签: spring logging spring-integration decorator mdc

我有一个使用Spring Integration进行并行调用的应用程序。所有配置都在config.xml中。有没有一种方法可以设置我放置但仍使用XML配置的每个任务执行器的装饰器? 我必须将MDC从主线程传递到记录器的并行线程。

<task:executor id="taskExecutor" pool-size="650-700"
               queue-capacity="3000" rejection-policy="CALLER_RUNS"/>

这是我现在拥有的任务执行器配置。

1 个答案:

答案 0 :(得分:1)

无法使用<task:executor/>来指定,因为它不受支持。而是可以像这样定义一个单独的bean并配置自己的任务装饰器

<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
    <property name="corePoolSize" value="4" />
    <property name="maxPoolSize" value="4" />
    <property name="WaitForTasksToCompleteOnShutdown" value="true" />
    <property name="taskDecorator" ref="taskDecorator" />
</bean>