現有這樣乙個場景,客戶端發起請求,服務端接收到請求,並作出反饋,並且在反饋的同時需要做下日誌記錄
正常情況下 在這個邏輯中 發起請求 接收請求 處理業務 記錄日誌 返回結果,從中得知 記錄日誌 不屬於業務範圍內 ,
可將其做非同步操作,這樣在處理完業務直接返回結果 無需等待日誌操作完成後再返回結果。
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資料庫 ...