Angular 在@SqsListener中设置maxNumberOfMessages
在JavaSpring中使用Angular 在@SqsListener中设置maxNumberOfMessages,angular,unit-testing,jasmine,Angular,Unit Testing,Jasmine,在JavaSpring中使用SpringCloudAWS消息传递方面,我是个新手 这是我当前的AWS配置 public AmazonSQSAsync amazonSqs(AWSCredentialsProvider awsCredentialsProvider) { return AmazonSQSAsyncClientBuilder.standard() .withEndpointConfiguration(new AwsClientBu
SpringCloudAWS消息传递方面,我是个新手
这是我当前的AWS配置
public AmazonSQSAsync amazonSqs(AWSCredentialsProvider awsCredentialsProvider) {
return AmazonSQSAsyncClientBuilder.standard()
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(sqsEndpoint, sqsRegion))
.withCredentials(awsCredentialsProvider)
.build();
}
在我的类侦听器中,我添加了一个注释,使其成为@SqsListener
我可以知道在哪里设置maxNumberOfMessages
或者它需要在AwsConfig中创建一个SimpleMessageListenerContainerFactory
bean
我希望得到一个友好的回答
非常感谢您的帮助:D
- 提供一个SimpleMessageListenerContainer
@覆盖
公共SimpleMessageListenerContainer创建SimpleMessageListenerContainer(){
SimpleMessageListenerContainer SimpleMessageListenerContainer=新SimpleMessageListenerContainer(){
@凌驾
受保护的void startQueue(字符串queueName,QueueAttributes QueueAttributes){
//用于配置基于队列的maxNumberOfMessages的位置
试一试{
if(queueName.endsWith(“.fifo”)){
writeField(queueAttributes,“maxNumberOfMessages”,1,true);
}
}捕获(非法访问例外e){
抛出新的运行时异常(e);
}
super.startQueue(queueName,queueAttributes);
}
};
simpleMessageListenerContainer.setAmazonSqs(amazonSqs);
返回simpleMessageListenerContainer;
}
- 提供一个简单的消息容器工厂
@Bean
公共SimpleMessageListenerContainerFactory SimpleMessageListenerContainerFactory(AmazonSQSAsync amazonSqs){
SimpleMessageListenerContainerFactory=新SimpleMessageListenerContainerFactory();
工厂。设置亚马逊QS(亚马逊QS);
工厂设置自动启动(错误);
factory.setMaxNumberOfMessages(5);
// ...
返回工厂;
}
我试试第二个。还没有测试过