天天看點

Springboot使用@Async-遇到的問題

項目調用三方接口,三方想要5秒内傳回處理結果,但是業務處理至少一分鐘,這時候就需要用到異步處理

剛開始使用一直不生效,最後發現自己将一步方法寫在了調用類的内部:

類似這種:

Springboot使用@Async-遇到的問題

發現一隻不起作用:

Springboot使用@Async-遇到的問題

找其原因是因為寫在了一個内部類中,無法進行springAop代理

修改:

Springboot使用@Async-遇到的問題
Springboot使用@Async-遇到的問題
Springboot使用@Async-遇到的問題

執行:

  1. 異步方法需要public修飾
  2. 方法傳回值為void或者Future
  3. 不能将異步方法寫在調用的内部(無法交給springAop做代理)
  4. 沒有在@SpringBootApplication啟動類當中添加注解@EnableAsync注解