我想弄清楚,如果我把多个@jmslistener放在一个方法上,那么它是如何工作的?它是否能像多个单独的jms监听器一样并行工作?或者它会像一个jms监听器那样按顺序工作?
比如:
@JmsListener(destination = "queue.name1", containerFactory = "jmsListenerContainerFactory")
@JmsListener(destination = "queue.name2", containerFactory = "jmsListenerContainerFactory")
@JmsListener(destination = "queue.name3", containerFactory = "jmsListenerContainerFactory")
@JmsListener(destination = "queue.name4", containerFactory = "jmsListenerContainerFactory")
public void receiveQueue(Message message, Session session) throws JMSException {
//TODO for message queue consuming logic
}
我的问题是spring将生成4个单独的jms监听器并并行工作,还是spring只生成1个jms监听器并为4个不同的消息队列顺序工作?
1条答案
按热度按时间brtdzjyr1#
每个
JmsListener
注解将构建一个jms侦听器容器,因此将有4个jms侦听器并行工作。从jmslistener注解的javadoc:将方法标记为指定目标()上jms消息侦听器的目标的注解。containerfactory()标识用于构建jms侦听器容器的jmslistenercontainerfactory。