【问题标题】:Spring Cloud AWS SQS Deletion PolicySpring Cloud AWS SQS 删除策略
【发布时间】:2018-01-24 09:28:37
【问题描述】:

我们有一个SQS监听器,比如:

@MessageMapping("queueName")
void listen(String message) { ... }

此队列具有配置了关联死信队列的重新驱动策略。

问题在于,默认的 Spring Cloud AWS 实现在轮询消息并在内部连接 ​​3 次重试处理消息时删除消息,然后失败。

我可以看到有一个 SqsMessageDeletionPolicy 枚举,其中包含 ALWAYS 和 ON_SUCCESS 值等。我在任何文档中都找不到如何更改该队列的 QueueAttributes 以更改此行为。

有人知道吗?

【问题讨论】:

  • 标题写着“SAS”。这是一个拼写错误。它的意思是“SQS”。

标签: aws-sdk spring-cloud amazon-sqs


【解决方案1】:

似乎解决方案基本上是使用 SQS 特定注释而不是通用注释:

@SqsListener(value = "queueName", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
void listen(String message) { ... }

【讨论】:

    【解决方案2】:

    Accepted answer显示了如何为单个队列配置删除策略,

    如果你想设置一个所有@SqsListener都使用的全局删除策略,可以使用一个属性来设置: cloud.aws.sqs.handler.default-deletion-policy=ON_SUCCESS

    【讨论】:

      猜你喜欢
      • 2020-03-02
      • 2014-05-02
      • 2019-08-05
      • 2015-02-27
      • 2020-07-21
      • 1970-01-01
      • 2016-09-14
      • 2022-07-22
      • 2016-06-30
      相关资源
      最近更新 更多