SpringBoot非同步任務與定時任務

2021-09-11 18:07:04 字數 1733 閱讀 8473

使用步驟

啟動類裡面使用@enableasync註解開啟非同步任務

@enableasync

// 開啟非同步功能

public

class

}編寫非同步任務

在springboot中,非同步任務可以使用@async註解,可以在方法上標註該註解,說明該方法是非同步方法,也可以標註在類上,表示該類的所有方法都是非同步方法。注意:非同步任務在其它類中呼叫才會起作用, 呼叫同乙個類中的非同步方法是不會起作用的

@service

public

class

asyncserviceimpl

implements

asyncservice

@override

@async

public

void

sayhello1()

}

編寫controller測試

@restcontroller

public

class

testcontroller

("/testasync2"

)public string testasync2()

}

分別訪問/testasync1/testasyc2,可以得到以下結果

可以看出,執行asyncservice的方法時在新的執行緒執行, 而在sayhello1中執行sayhello方法時,兩個方法在同乙個執行緒,說明了呼叫所在類的非同步方法時不會起作用的

自定義執行緒池

springboot使用的是自己定義的執行緒池來執行非同步方法,我們也可以使用自定義的執行緒池,使用自定義執行緒池我們可以來實現spring的asyncconfigurer介面

@configuration

public

class

aysncconfig

implements

asyncconfigurer

}

開始springboot的定時任務需要兩個註解@enablescheduling@scheduled,@enablescheduling作用在啟動類上,開啟基於註解的定時任務,@scheduled作用在啟動類上,表示該方法為定時方法

開啟定時任務

@enableasync

//開啟非同步註解功能

@enablescheduling

//開啟基於註解的定時任務

public

class

}

編寫定時任務

spring允許使用cron表示式來規定執行時機

cron表示式

Spring Boot 非同步任務

可以使用非同步的方式載入方法 只需在專案入口上定義 enableasync 開啟非同步註解功能 以及某個需要非同步方法上面定義 async註解 即可1.專案入口上定義 enableasync 開啟非同步註解功能 enableasync 開啟非同步註解功能 public class 2.使用 asyn...

springboot非同步任務

enablerabbit 開啟rabbit enableasync 開啟非同步 public class 新建乙個service,此service休眠3秒 package com.example.vuelog.service.task import org.springframework.sched...

springboot非同步任務

springboot非同步任務 使用 async 告訴spring這是乙個非同步方法 service public class asynservice catch interruptedexception e system.out.println 資料處理中 主函式使用 enableasync開啟非...