记录一次spring定时任务,需要多线程执行时遇到的坑

项目中需要使用定时任务开启多个线程处理组装报文业务,但是在spring.xml中配置了

<task:annotation-driven executor="myexecutor" />  
 <task:executor id="myexecutor" pool-size="2"  /> 

并不起作用,依然是单线程执行,后查看spring源码得知,需要配置scheduler,如果不配置scheduler,会默认创建线程数为一的线程池,截图如下:

记录一次spring定时任务,需要多线程执行时遇到的坑

因此正确配置如下:

<task:executor id="myexecutor" pool-size="2"  />  

<task:scheduler id="scheduler" pool-size="2" />
<task:annotation-driven executor="myexecutor" proxy-target-class="true" scheduler="scheduler" />