我能够弄清楚如何设置它的唯一方法是在我的配置中使用以下覆盖:
@Bean("myFactory")
@ConditionalOnClass(SqsAsyncClient.class)
SqsMessageListenerContainerFactory<Object> mySqsListenerContainerFactory(
SqsAsyncClient sqsAsyncClient) {
return SqsMessageListenerContainerFactory.builder()
.configure(
options ->
options.acknowledgementMode(
AcknowledgementMode.valueOf("ON_SUCCESS")))
.sqsAsyncClient(sqsAsyncClient)
.build();
}
Run Code Online (Sandbox Code Playgroud)
这在我的@SQSListener:
@SqsListener(
value = "myQueue",
factory = "myFactory")
Run Code Online (Sandbox Code Playgroud)
我还没有弄清楚如何配置它,以便io.awspring.cloud.autoconfigure.sqs.SqsAutoConfiguration类可以设置确认模式,并且我可以获得让 Spring 自动配置我需要的一切的好处。谁能告诉我应该如何继续发展?
在 Spring Cloud AWS 3.x 之前,我们设置如下@SQSListener,似乎不再支持:
@SqsListener(
value = "myQueue",
deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
Run Code Online (Sandbox Code Playgroud)
在Spring Cloud AWS 3.0中,默认的确认模式是ON_SUCCESS[0]。
使用另一种确认模式目前只能通过工厂完成,但在下一个版本(3.1)中,将可以再次在注释中直接设置它@SqsListener[1]。
[1] https://github.com/awspring/spring-cloud-aws/pull/870
| 归档时间: |
|
| 查看次数: |
1255 次 |
| 最近记录: |