spring如何在单个方法上为多个@JmsListener工作



我想弄清楚,如果我在一个方法上放置多个@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侦听器并并行工作,还是只生成1个JMS侦听器,并依次为4个不同的消息队列工作?

每个JmsListener注释都将构建一个JMS监听器容器,因此将有4个JMS监听器并行工作。来自JmsListener注释的JavaDoc:

将方法标记为指定destination((上JMS消息侦听器的目标的注释。containerFactory((标识用于构建JMS侦听器容器的JmsListenerContainerFactory。

最新更新