java—spring如何在单个方法上为多个@jmslistener工作

5lwkijsr  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(764)

我想弄清楚,如果我把多个@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个不同的消息队列顺序工作?

brtdzjyr

brtdzjyr1#

每个 JmsListener 注解将构建一个jms侦听器容器,因此将有4个jms侦听器并行工作。从jmslistener注解的javadoc:
将方法标记为指定目标()上jms消息侦听器的目标的注解。containerfactory()标识用于构建jms侦听器容器的jmslistenercontainerfactory。

相关问题