记录一次spring定时任务,需要多线程执行时遇到的坑
项目中需要使用定时任务开启多个线程处理组装报文业务,但是在spring.xml中配置了
<task:annotation-driven executor="myexecutor" />
<task:executor id="myexecutor" pool-size="2" />
并不起作用,依然是单线程执行,后查看spring源码得知,需要配置scheduler,如果不配置scheduler,会默认创建线程数为一的线程池,截图如下:
因此正确配置如下:
<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" />