springboot使用 @scheduled 多任务并发
springboot的@scheduled,并不是默认并发的,想给方法添加@Scheduled注解,实现两个定时任务。可是运行发现,两个task并没有并发执行,而是执行完一个task才会执行另外一个。
要 给类添加注解@EnableAsync,并给方法添加注解@Async。
@Component@Configurable@EnableScheduling@EnableAsyncpublicclassDemoTask {@Async@Scheduled(cron = "0/5 * * * * ? ")publicvoidstartSchedule() {System.out.println("===========1=>");try{for(inti=1;i<=10;i++){System.out.println("=1==>"+i);Thread.sleep(1000);}} catch(InterruptedException e) {e.printStackTrace();}}
@Async@Scheduled(cron = "0/5 * * * * ? ")publicvoidstartSchedule2() {for(inti=1;i<=10;i++){System.out.println("=2==>"+i);try{Thread.sleep(1000);} catch(InterruptedException e) {e.printStackTrace();}}}}
在这个类或启动类BootApplication添加@EnableScheduling标注
