1. 程式人生 > 其它 >springboot--定時任務和非同步任務

springboot--定時任務和非同步任務

技術標籤:java學習

定時任務

TaskSchedule 任務排程者
TaskExecute 任務執行者

@EnableScheduling 用於開啟功能

@EnableScheduling
@SpringBootApplication
public class BootApplication {

    public static void main(String[] args) {
        SpringApplication.run(BootApplication.class, args);
    }

}

@Scheduled 使用定時方法
Cron表示式
你需要建立一個定時類,並將它放入容器中,在方法上使用@Scheduled註解,它的引數cron就是你的定時

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修飾
二、非同步方法不能與呼叫非同步方法的方法在同一個類中