SpringBoot 如何實現非同步執行

2021-10-12 09:20:42 字數 781 閱讀 2287

現有這樣乙個場景,客戶端發起請求,服務端接收到請求,並作出反饋,並且在反饋的同時需要做下日誌記錄

正常情況下 在這個邏輯中 發起請求 接收請求 處理業務 記錄日誌 返回結果,從中得知 記錄日誌 不屬於業務範圍內 ,

可將其做非同步操作,這樣在處理完業務直接返回結果 無需等待日誌操作完成後再返回結果。

1、定義非同步操作的bean

import org.springframework.scheduling.annotation.async;

import org.springframework.stereotype.component;

@component

public class anyservice catch (interruptedexception e)

system.out.println("sys -------------------");

return "";

}}

2、主程式類開啟非同步請求配置

@enableasync

public static void main(string args)

3、業務**測試 

@autowired

anyservice anyservice;

public string getinfo()

測試結果 getinfo方法在 anyservice.sys(); 非同步方法中未執行完 就已經返回客戶端結果,與假設場景相符合。

springboot整合dubbo實現非同步呼叫

二 在consumer端實現 三 結果 與正常dobbu使用一樣,只是設定service屬性async ture service version 1.0 group hehe async true public class userserviceimpl implements userservice...

springboot使用 async實現非同步執行緒池

工作中經常涉及非同步任務,通常是使用多執行緒技術,比如執行緒池threadpoolexecutor,但使用executors容易產生oom,需要手動使用threadpoolexecutor建立執行緒池 在springboot使用 async 可以實現非同步呼叫,配置執行緒池引數,可以簡單的實現多執行...

python Celery redis 實現非同步

1 安裝celery 和redis庫 pip install celery with redis 解除安裝 3.0以上版本的redis,安裝2.1版本的redis 注 此處是乙個坑 pip uninstall redis pip install redis 2.10 62 安裝本地redis資料庫 ...