[英]Spring integration - Keep messages after delivery
1)我有興趣了解是否可以保留使用Spring Integration傳遞的消息。 我已經在使用mongo永久存儲(ConfigurableMongoDbMessageStore),但是僅失敗的消息保留在集合中。 理想情況下,我希望所有消息都保留列出和重試它們的功能。
我將使用“狀態”或類似字段來標識排隊,成功或失敗的消息。 不知道該字段是否已經存在,但是我猜必須已經有類似的東西。
2)此外,當一條消息失敗並被保留時,該消息中還會有很多數據。 此數據已序列化,因此我很好奇如何提取原始消息並重試。
3)目標是在webapp中創建一個界面,在該界面中可以查看和重試所有排隊的消息。 不僅失敗的消息,而且成功的傳遞(可用於測試)。
我到處都在尋找答案,但是找不到。
謝謝
我會說這不是queue
組件的好設計。
正確,它將失敗的消息返回到隊列以供將來重新發送,但是應該從隊列中刪除好的消息,以避免在隊列中的下一個輪詢中重復。
不,因為您將存儲用作隊列,所以消息上沒有“狀態”字段。
BTW Spring Integration為隊列通道提供了MongoDbChannelMessageStore
實現: MongoDbChannelMessageStore
。
您可以使用獨立的並行Mongo集合來實現它,並將消息存儲兩次:用於隊列和將來的分析。 無論消息成功與否,您都可以在此處引入“狀態”字段並對其進行控制。
在這里,您可以介紹UI來管理該集合並提供諸如send
, retry
。 從此處刪除消息,然后再次將其發送到這兩個集合。
高溫超導
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.