Spring Cloud AWS SQS SimpleMessageListenerContainerFactory конфигурация для нескольких @SqsListeners - PullRequest
0 голосов
/ 26 октября 2018

Можно ли определить разные SimpleMessageListenerContainerFactory @Beans и использовать их для разных @SqsListeners?Поскольку базовое число потоков зависит от того, какой максимальный размер пакета установлен в SimpleMessageListenerContainerFactory, я хотел бы иметь возможность настроить свойство ниже для некоторых @SqsListeners, которые могут прослушивать очередь, которая не получает много сообщений, по сравнению с другими@SqsListeners, которые прослушивают очередь со многими сообщениями и предоставляют больше ресурсов этим слушателям.Например,

@Bean
public SimpleMessageListenerContainerFactory containerFactoryForLargeQueue(final AmazonSQSAsync amazonSqs) {
    SimpleMessageListenerContainerFactory factory = new SimpleMessageListenerContainerFactory();
    factory.setAmazonSqs(amazonSqs);
    factory.setMaxNumberOfMessages(10);
    return factory;
}

@Bean
public SimpleMessageListenerContainerFactory containerFactoryForSmallQueue(final AmazonSQSAsync amazonSqs) {
    SimpleMessageListenerContainerFactory factory = new SimpleMessageListenerContainerFactory();
    factory.setAmazonSqs(amazonSqs);
    factory.setMaxNumberOfMessages(5);
    return factory;
}

А затем каким-то образом настроить @SqsListener на использование одного или другого в зависимости от объема сообщений, которые он получает из своей очереди.

...