如图,本来计划定时任务中用多线程去处理业务,定时任务在service中,然后调该类里的方法syncJJPoint();
打印的日志如下:
从日志可以看出,在redis中取得数据134条,每条循环取调syncJJPoint(),按理说应该用配置的线程池去异步执行的,但是打印的日志看来却是用的@Scheduled中的线程池同步去调用的且是单例的。
当调整了定时任务到controller层以后日志如下:
这次能看出当调用syncJJPoint()是指定的线程池去异步执行的,由原来的1分17秒缩短到27秒,我猜想可能是@Async注解修饰的方法在同一个类当中的方法去调用时不会生效。