Mar*_*rco 6 amazon-sqs spring-boot spring-cloud
我正在尝试让 SpringCloud AWS SQS 与自定义一起工作,SimpleMessageListenerContainerFactory以便我可以设置超时和最大消息数。没有使用SQS 中SimpleMessageListenerContainerFactory的@SqsListener良好拾取消息注释的自定义方法。但是当我尝试配置自定义时SimpleMessageListenerContainerFactory,注释停止工作。
@Bean
public SimpleMessageListenerContainerFactory simpleMessageListenerContainerFactory(AmazonSQSAsync amazonSqs) {
    SimpleMessageListenerContainerFactory factory = new SimpleMessageListenerContainerFactory();
    factory.setAmazonSqs(amazonSqs);
    factory.setAutoStartup(true);
    factory.setMaxNumberOfMessages(10);
    factory.setWaitTimeOut(2000);
    return factory;
}
定义自定义 SimpleMessageListenerContainerFactory 时如何获得正常的 @SqsListener 行为?
@Component
public class SqsMessageConsumer {
    @SqsListener("incoming-data")
    private void doSomething(String payload) {
        System.out.println("data = " + payload);
    }
}
不确定您错过了什么,但有一个针对此类用例的测试:
@EnableSqs
@Configuration
public static class ConfigurationWithCustomContainerFactory {
    @Bean
    public SimpleMessageListenerContainerFactory simpleMessageListenerContainerFactory() {
        SimpleMessageListenerContainerFactory factory = new SimpleMessageListenerContainerFactory();
        factory.setAmazonSqs(amazonSQS());
        ...
        return factory;
    }
    @Bean
    public AmazonSQSAsync amazonSQS() {
        return AMAZON_SQS;
    }
}
所以,@EnaqbleSqs仍然在这里,SqsConfiguration并@Autowired与您的自定义SimpleMessageListenerContainerFactory @Bean.
| 归档时间: | 
 | 
| 查看次数: | 5193 次 | 
| 最近记录: |