如果消息在队列中停留太长时间,apache camel seda queue上是否有任何属性来超时消息?

gdx19jrr  于 2023-11-18  发布在  Apache
关注(0)|答案(1)|浏览(138)

我使用的是Apache Camel 2.18.0版本。
我正在使用带有并发消费者选项的seda队列。我正在寻找一种方法来控制消息可以在队列中保留多长时间。
例如:假设超时配置设置为2分钟,一旦消息到达队列,如果它停留超过2分钟,则应抛出异常。
在seda文档中,此timeout属性可用
例如:from("direct:start").to("seda:queue?timeout=120000"); // 2 minutes (in milliseconds)
但这意味着消息应该在2分钟内到达队列。
那么,如果没有这样的属性导致队列中的消息年龄超时,
1.消息可以一直留在队列中,直到它们被出队处理?
1.如果我想控制消息可以在队列中停留多长时间,我可能需要在应用程序中实现自定义逻辑,以定期检查消息,并在消息超过一定年龄时将其从队列中删除?

5w9g7ksd

5w9g7ksd1#

广告1)是的,他们留在队列(永远)
Ad 2)是的,你需要编写自己的逻辑来从队列中删除你不想要的消息。你也可以考虑使用自定义的Queue实现,并为seda组件提供自定义的队列工厂。

相关问题