springboot--定時任務和非同步任務
阿新 • • 發佈:2021-01-08
技術標籤:java學習
定時任務
TaskSchedule 任務排程者
TaskExecute 任務執行者
@EnableScheduling 用於開啟功能
@EnableScheduling
@SpringBootApplication
public class BootApplication {
public static void main(String[] args) {
SpringApplication.run(BootApplication.class, args);
}
}
@Scheduled 使用定時方法
Cron表示式
你需要建立一個定時類,並將它放入容器中,在方法上使用@Scheduled註解,它的引數cron就是你的定時
@Component
public class ScheduledService {
@Scheduled(cron="0/2 * * * * ?")
public void contextLoads() {
System.out.println("你好");
}
}
非同步任務
@EnableAsync 開啟功能
@Async 標識為非同步方法,也可以放在類上
非同步任務類:
@Component
public class AsyncService {
@Async
public void doNoReturn( ){
try {
// 這個方法執行需要三秒
Thread.sleep(3000);
System.out.println("方法執行結束");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
優點:使用非同步任務比同步任務耗時少,提高後臺處理效能。
如下方式會使@Async失效
一、非同步方法使用static修飾
二、非同步方法不能與呼叫非同步方法的方法在同一個類中