SpringBoot的異步調用,異步調用類似與定時任務,使用起來簡單方便。
首先要在springboot項目的啟動上添加@EnableAsync開啟異步監控,自動掃描。沒有這個主角兒一切都是扯淡。
第二步就是創建異步任務組件,把@Async加到需要異步執行的方法上即可,註解丟了就變成同步任務了。注意該異步方法必須是 public 的。這個示例類裡面寫了倆個方法,一個sleep1000毫秒,另一個sleep3000毫秒。
異步步方法如果是沒有返回值,那就和常規方法樣寫,有返回值那麼返回值類型就是Future。這個接口Future專門接收異步響應。具體的結果類型為AsyncResult,支持泛型。
第三寫好控制類。通過註解把服務添加進來,統計了個執行時間,由此可以看出來確實是異步調用。
此圖即為異步調用耗時,兩個任務是各幹各的。
此處為同步執行,執行完一個再執行另一個。
異步調用如果出現了異常,使用者很難發現的。最好通過實現AsyncTaskExecutor自定義處理。
異步調用通常用在發短信、發送郵件、消息推送 、運維凌晨自動化操作等,這些場景實時性要求不高,大多都是推廣統計等服務。
閱讀更多 程序員球迷的日常 的文章
關鍵字: SpringBoot Future Async