首页 > 解决方案 > 如何通过 XML 配置在 Task Executor 中设置 Task Decorator?

问题描述

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

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

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

标签: springloggingspring-integrationdecoratormdc

解决方案


<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>

推荐阅读