批量消费JMS消息

Mic*_*che 5 java activemq-classic jms

该接口仅定义一个接收单个参数作为参数的MessageListener方法。我正在寻找一种从队列中获取多个 s 的方法,以便我可以处理该批次,然后确认该批次中的所有 s 。onMessageMessageMessageMessage

JMS世界里有这样的功能吗?如果不是,ActiveMQ 是否支持它作为扩展?

谢谢,迈克尔

Spa*_*ker 3

JMS 1.1 规范第 4.5.1节同步交付对此进行了解释:

\n\n
\n

客户端可以使用 MessageConsumer 的一个接收方法请求下一条消息。接收有多种变体,允许客户端轮询或等待下一条消息。

\n
\n\n

9.2.2 同步接收消息中甚至有一个代码示例:

\n\n
TextMessage stockMessage;\nstockMessage = (TextMessage)receiver.receive();\n
Run Code Online (Sandbox Code Playgroud)\n\n

请注意,在使用轮询和批处理时,您还应该查看确认 -有关这方面的更多信息,请参阅第 4.4.11 节消息确认。特别有趣的是以下内容:

\n\n
\n

CLIENT_ACKNOWLEDGE - 使用此选项,客户端通过调用 message\xe2\x80\x99s 确认方法来确认消息。确认已使用的消息会自动确认已收到其会话传送的所有消息。

\n
\n