如何为多个AWS SQS配置多个JmsListener

@EnableJms
@Configuration
public class SqsConfig {

    @Bean
    public SQSConnectionFactory sqsConnectionFactory(SqsProperties sqsProperties) {
        AmazonSQS sqs = AmazonSQSClientBuilder.standard().withRegion(
                String.valueOf(RegionUtils.getRegion(sqsProperties.getRegion()))).build();
        return new SQSConnectionFactory(new ProviderConfiguration(),sqs);
    }

    @Bean
    public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(
            SQSConnectionFactory connectionFactory,MessageConverter messageConverter,ErrorHandler errorHandler,SqsProperties sqsProperties) {
        DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
        factory.setConnectionFactory(connectionFactory);
        factory.setDestinationResolver(new DynamicDestinationResolver());
        factory.setConcurrency(sqsProperties.getconcurrency());
//        factory.setMessageConverter(messageConverter);
        factory.setSessionAcknowledgeMode(Session.CLIENT_ACKNOWLEDGE);
        factory.setErrorHandler(errorHandler);
        return factory;
    }

    @Bean
    public MessageConverter messageConverter(ObjectMapper objectMapper) {
        MappingJackson2MessageConverter mappingJackson2MessageConverter = new MappingJackson2MessageConverter();
        mappingJackson2MessageConverter.setObjectMapper(objectMapper);
        mappingJackson2MessageConverter.setTargetType(MessageType.TEXT);
        mappingJackson2MessageConverter.setTypeIdPropertyName("_type");
        return mappingJackson2MessageConverter;
    }

}
@Component
@RequiredArgsConstructor
public class SqsMessageListener {

    private final Subscriptionmapper subscriptionmapper;
    private final SubscriptionService subscriptionService;
    private final snsProducer snsProducer;



    @JmsListener(destination = "${aws.sqs.createSubscription}")
    public void createSubscription(String receivedMsg) {


            System.out.println(receivedMsg);


    }

    @JmsListener(destination = "${aws.sqs.cancelSubscription}")
    public void cancelSubscription(String receivedMsg)  {

            System.out.println(receivedMsg);


    }

}

在我的项目中,我使用SQS AWS添加了两个不同的JmsListener

所以我应该为每个JmsListener添加单独的jmsListenerContainerFactory配置

AmazonClientException:receiveMessage 无法执行HTTP请求:超时等待来自池的连接

mei96818968 回答:如何为多个AWS SQS配置多个JmsListener

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3152120.html

大家都在问