-1

我可以使用camel context [xml]从activemq读取消息,但我只想不读取任何消息,例如,如果队列包含10 000条消息,我们只想读取前1 000条消息,剩余的不应该'不要被触动。

我是骆驼新手

4

2 回答 2

0

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

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

CiA2 书还包含管理和控制 Camel 路线的内容,您可以在管理章节中查看。

于 2018-03-21T07:55:44.973 回答
0

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

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

“jms:queue:order?maxMessagesPerTask=1000”

于 2018-03-20T19:13:43.750 回答