我使用的是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.如果我想控制消息可以在队列中停留多长时间,我可能需要在应用程序中实现自定义逻辑,以定期检查消息,并在消息超过一定年龄时将其从队列中删除?
1条答案
按热度按时间5w9g7ksd1#
广告1)是的,他们留在队列(永远)
Ad 2)是的,你需要编写自己的逻辑来从队列中删除你不想要的消息。你也可以考虑使用自定义的Queue实现,并为seda组件提供自定义的队列工厂。