【发布时间】:2023-06-10 01:19:01
【问题描述】:
我在 Spring 框架中使用 ActiveMQ。
我在 jms 容器中设置了两个消费者。当我向队列发送 4 条消息时,一些消息被转移到“Dispatched Queue”,因为消费者处理消息需要很长时间。
我正在尝试找到阻止消息进入“Dispatched Queue”的方法,也就是说,我希望它们可供任何准备好使用该消息的消费者使用。
我尝试将预取设置为 0,但它似乎根本不起作用。
<bean id="prefetchPolicy" class="org.apache.activemq.ActiveMQPrefetchPolicy">
<property name="queuePrefetch" value="0"/>
</bean>
<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<constructor-arg index="0" value="tcp://localhost:61616" />
<property name="prefetchPolicy" ref="prefetchPolicy"/>
</bean>
以下是我的 jms 容器的设置:
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="destination" ref="defaultDestination" />
<property name="messageListener" ref="messageListener" />
<property name="concurrentConsumers" value="2" />
</bean>
【问题讨论】: