Apache camel 使用camel仅读取队列中的邮件数?

Apache camel 使用camel仅读取队列中的邮件数?,apache-camel,camel-jms,Apache Camel,Camel Jms,我可以使用camel上下文[xml]从activemq读取消息,但我不希望读取任何消息,例如,如果队列包含10000条消息,我们只希望读取前1000条消息,其余的消息不应被触碰 我是新手不太清楚您希望您的程序如何工作。您想在收到1000条消息后停止路由吗?还是你的节目?还是在处理剩下的事情之前先把它们做完 无论如何,Jms组件都有一个maxMessagesPerTask参数,该参数是任务可以接收的消息数,在此之后任务将终止。那可能是你想要的 “jms:queue:order?maxMessage

我可以使用camel上下文[xml]从activemq读取消息,但我不希望读取任何消息,例如,如果队列包含10000条消息,我们只希望读取前1000条消息,其余的消息不应被触碰


我是新手

不太清楚您希望您的程序如何工作。您想在收到1000条消息后停止路由吗?还是你的节目?还是在处理剩下的事情之前先把它们做完

无论如何,Jms组件都有一个maxMessagesPerTask参数,该参数是任务可以接收的消息数,在此之后任务将终止。那可能是你想要的


“jms:queue:order?maxMessagesPerTask=1000”

如果队列中只有500条消息,您是否应该等到收到了额外的500条消息,那么总数是1000条呢。如果你重启你的应用程序呢

这是一个有点奇怪的用例。驼峰JMS组件被设计为从队列中连续消费。如果您想停车,请查看控制总线EIP,在那里您可以控制骆驼路线,并停车。还可以查看
RoutePolicy
,您可以使用该策略控制路由,例如查看节流路由策略,该策略可以根据负载等启动/停止路由

CiA2书还涵盖了骆驼路线的管理和控制,您可以在管理一章中查看


您的问题不清楚。它首先说你想阅读信息的数量,然后你说你实际上想阅读前1000条信息。这是哪一个?该选项更像是一个内部SpringJMS东西,它控制消费线程在其终止之前的活动时间。这些选项可用于调整SpringJMS,以微调它在放大/缩小消费者时的反应速度,以及您处理消息和队列中挂起消息的速度等。