我知道一些關于 Spring Integration 通道的基礎知識,因為有兩種型別的通道,即 SubscribableChannel 通道和 Pollable 通道,其中 Directchannel 是 Subscribablechannel 的一種。我有一個場景,我可以在每 2 毫秒后將連續訊息發送到直接通道,但在消費者端,即(我正在使用服務激活器)接收訊息后可能需要 1 秒來處理。在實作的基礎上,我將失敗或成功回應回傳給呼叫者。這里的要求是我必須按順序處理它們,即我不能以同步的方式執行它。我有以下問題,
- 從我讀到的網路資源中,直接渠道可以阻止發件人,但在哪種情況下我沒有弄清楚?
- 我可以使用直接通道在每 2-3 毫秒后發送連續訊息,如果服務激活器回傳回應,它回傳給誰?是 DirectChannel 的呼叫者執行緒嗎?(另外我希望這些訊息按順序執行,這就是我選擇直接通道的原因)
- 如果 DirectChannel 不適合上述情況,那么我可以使用哪個 SubscribableChannel 頻道?
我再一次描述我的場景,
我的應用程式每 2 或 3 毫秒接收一次 REST 請求,我想根據流程執行向呼叫者回傳成功或失敗。這里還有一件事是,我不能異步執行上述請求,我只想按順序執行它們。所以我決定將這些請求發送到 DirectChannel。
請建議任何好的方法來解決它?
uj5u.com熱心網友回復:
我使用了多個可以配置執行緒執行器的執行器通道,所以我只為執行器通道使用了單執行緒,并為阻塞佇列提供了一些容量。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/513224.html
