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