多个@SqsListeners的Spring Cloud AWS SQS SimpleMessageListenerContainerFactory配置

时间:2018-10-25 21:16:28

标签: spring-cloud

是否可以定义不同的SimpleMessageListenerContainerFactory @Beans并将它们用于不同的@SqsListeners?由于基本线程数取决于SimpleMessageListenerContainerFactory中设置的最大批处理大小,因此我希望能够为某些@SqsListeners配置较低的属性,这些@SqsListeners可能正在侦听未收到许多消息的队列,而其他队列@SqsListener侦听包含许多消息的队列,并为这些侦听器提供更多资源。例如

@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配置为使用一个或另一个,具体取决于它从队列中接收到的消息量。

0 个答案:

没有答案