使用camel只读取来自Queue的消息?

时间:2018-03-20 17:38:40

标签: apache-camel camel-jms

我能够使用camel context [xml]从activemq读取消息,但我只想读取没有消息,例如,如果队列包含10 000条消息,我们只想读取前1000条消息,不应该被触及。

我是骆驼的新手

2 个答案:

答案 0 :(得分:0)

目前尚不清楚您希望程序如何运作。你想在1000条消息后停止路线吗?还是你的节目?或者在处理其余部分之前完成它们?

无论如何,Jms组件有一个maxMessagesPerTask参数,该参数是一个任务可以接收的消息数,然后终止它。这可能会做你想要的。

“JMS:队列:为了maxMessagesPerTask = 1000”

答案 1 :(得分:0)

如果队列中只有500条消息,如果您等到收到额外的500条消息,那么总计为1000条。如果您重新启动应用程序等,该怎么办?

这是一个有点奇怪的用例。 Camel JMS组件旨在从队列中继续使用。如果要停止,请查看控制总线EIP,您可以在其中控制Camel路由,并停止它们。此外,请查看RoutePolicy,您可以使用它控制路由,例如,查看可根据负载等启动/停止路由的限制路由策略。

CiA2书还介绍了管理和控制Camel路线,您可以在管理章节中查看。