如果定义了多个任务执行器/调度程序,Spring @Async如何选择它?

时间:2017-05-25 19:26:28

标签: spring spring-async

我在XML配置中定义了以下内容:

<task:scheduler id="myScheduler" pool-size="10" />
<bean id="asyncExecutor" class="org.springframework.core.task.SimpleAsyncTaskExecutor"/>
<bean id="asyncExecutor2" class="org.springframework.core.task.SimpleAsyncTaskExecutor"/>

在Spring中使用@Async注释时,它如何知道要使用哪些执行程序/调度程序?我希望它在启动时抛出一个错误,因为这里有多个并且我没有包含<task:annotation-driven executor="xxx"/>标记,但它似乎工作正常。有没有办法可以记录正在使用哪一个?

1 个答案:

答案 0 :(得分:0)

...

<task:annotation-driven executor="asyncExecutor" />
<task:executor id="asyncExecutor" pool-size="10" />

...

在调试时,您可能会查看堆栈跟踪中的线程名称,它应该从以下内容开始:[asyncExecutor-xx]