簡體   English   中英

春季集成-交付后保留消息

[英]Spring integration - Keep messages after delivery

1)我有興趣了解是否可以保留使用Spring Integration傳遞的消息。 我已經在使用mongo永久存儲(ConfigurableMongoDbMessageStore),但是僅失敗的消息保留在集合中。 理想情況下,我希望所有消息都保留列出和重試它們的功能。

我將使用“狀態”或類似字段來標識排隊,成功或失敗的消息。 不知道該字段是否已經存在,但是我猜必須已經有類似的東西。

2)此外,當一條消息失敗並被保留時,該消息中還會有很多數據。 此數據已序列化,因此我很好奇如何提取原始消息並重試。

3)目標是在webapp中創建一個界面,在該界面中可以查看和重試所有排隊的消息。 不僅失敗的消息,而且成功的傳遞(可用於測試)。

我到處都在尋找答案,但是找不到。

謝謝

我會說這不是queue組件的好設計。

正確,它將失敗的消息返回到隊列以供將來重新發送,但是應該從隊列中刪除好的消息,以避免在隊列中的下一個輪詢中重復。

不,因為您將存儲用作隊列,所以消息上沒有“狀態”字段。

BTW Spring Integration為隊列通道提供了MongoDbChannelMessageStore實現: MongoDbChannelMessageStore

您可以使用獨立的並行Mongo集合來實現它,並將消息存儲兩次:用於隊列和將來的分析。 無論消息成功與否,您都可以在此處引入“狀態”字段並對其進行控制。

在這里,您可以介紹UI來管理該集合並提供諸如sendretry 從此處刪除消息,然后再次將其發送到這兩個集合。

高溫超導

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM