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;
}
Run Code Online (Sandbox Code Playgroud)
定义自定义 SimpleMessageListenerContainerFactory 时如何获得正常的 @SqsListener 行为?
@Component
public class SqsMessageConsumer {
@SqsListener("incoming-data")
private void doSomething(String payload) {
System.out.println("data = " + payload);
}
}
Run Code Online (Sandbox Code Playgroud)
不确定您错过了什么,但有一个针对此类用例的测试:
@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;
}
}
Run Code Online (Sandbox Code Playgroud)
所以,@EnaqbleSqs
仍然在这里,SqsConfiguration
并@Autowired
与您的自定义SimpleMessageListenerContainerFactory
@Bean
.
归档时间: |
|
查看次数: |
5193 次 |
最近记录: |