[英]Spring Integration: Intercept channels Asynchronuously
我有一個Spring Integration應用程序。 它具有配置的各種通道,變壓器,路由器和服務激活器。
需求
每當將調用任何服務激活器時,請求和響應都應保持不變。
解:
我編寫了一個攔截器來攔截所有必需的通道。 然后根據配置,所有必需的請求和響應都將保留在DB中。
上述方法存在問題
每當我重新啟動應用程序服務器時,第一次會花費太多時間來初始化數據庫配置。 第二個問題是,每當執行持久性邏輯時,流程就處於等待狀態。
因此,花時間提供響應。
指導我正在尋求使持久性異步。
有什么辦法可以達到同樣的效果嗎? 我應該為持久性實現實現線程嗎?
任何幫助,將不勝感激。
謝謝。
您正在尋找的技術稱為WireTap
: https : WireTap
。
因此,無論將要發送到服務激活器的什么內容,都將也發送到“輕敲”通道。 而且確實可以轉移到其他線程以異步保存到數據庫。 為此,您可以考慮將竊聽通道設置為QueueChannel
或ExecutorChannel
。
第一次需要太多時間來初始化數據庫配置
從體系結構的角度來看,這是錯誤的。 初始化測試環境是可以的,但是在生產中,必須事先准備好數據庫,並且不能對應用程序進行任何模式修改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.