1
一個系統我必須與集成的系統集成包括以下過程:與可能或可能不會回覆
- 訂閱了有關從MegaCorp「foo」的消息。 (如提供的回調方法訂閱其用於 通知的一部分。)
- 通過回調方法
- 約「foo」的消息退訂等待通知。
但是有些情況下沒有通知。處理這個問題的最好方法是什麼?我懷疑有這樣的EIP,但我沒有設法找到一個。
到位,我們有這種方法包括使用Apache的駱駝如下:
A線:
- 訂閱關於 「foo」 的消息。 請求通知發送到路由B.
- 發送AddSubscription至路線D.
B線(快樂路徑 - 收到通知)
- 如果我們收到通知,然後做對數據有用的東西。
- 寄ReceivedNotification至路線d
路線C(定時器)
- 這將字符串發送到路由d每X秒,以確保我們週期性地從訂閱
路線D(Unsubscriber)
if (payload instanceOf AddSubscription)
// Add to ListofSubscriptions with an expiry time
elseif (payload instanceOf ReceivedNotification)
// Remove from ListOfSubscriptions
// Unsubscribe
elseif (payload instanceOf String)
// Remove expired subscriptions from ListOfSubscriptions
// Unsubscribe
// Note that we didn't receive a notification
我有點困惑。你訂閱,然後期待一個單一的消息,並再次取消訂閱(=「快樂的路徑」)?我建議訪客模式,以避免if-elseif-elseif ... – Fildor
是的,這就是API的工作原理。還有其他用例,您可以持續訂閱更新,以便長時間保持訂閱。感謝訪問者模式提示。 –