Несколько RabbitListeners. Один не работает - PullRequest
0 голосов
/ 05 марта 2020

Мне необходимо прослушать две очереди и обработать сообщения

Я создал два контейнера

@Bean("listenerForIncomingMessages")
public SimpleRabbitListenerContainerFactory listenerForIncomingMessages() {
    SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
    factory.setConnectionFactory(connectionFactory());
    factory.setConcurrentConsumers(2);
    factory.setMaxConcurrentConsumers(2);
    factory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
    factory.setPrefetchCount(1);
    return factory;
}

@Bean("listenerForMissedDeliveries")
public SimpleRabbitListenerContainerFactory listenerForMissedDeliveries() {
    SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
    factory.setConnectionFactory(connectionFactory());
    factory.setConcurrentConsumers(2);
    factory.setMaxConcurrentConsumers(2);
    factory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
    factory.setPrefetchCount(1);
    return factory;
}

У меня есть два класса @Configuration для обработки сообщений

@Configuration
public class ClassOne {

    @RabbitListener(containerFactory = "listenerForIncomingMessages", queues = "IncomingMessage")
    public void getAmqpMessage(Message inMessage, Channel channel) throws Exception {

    }
}

@Configuration
public class ClassTwo {

    @RabbitListener(containerFactory = "listenerForMissedDeliveries", queues = "MissedDelivery")
    public void getAmqpMessage(Message inMessage, Channel channel) throws Exception {

    }
}

RabbitListener ClassTwo работает только один раз при запуске сервера. После этого он не работает - сообщения поступают в очередь, но они не используются.

Что я делаю не так?

Любые указатели, чтобы это работало.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...