作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
出于各种原因,我在 AWS 上的消费者有时会从 SQS 队列中读取一些消息,并决定将其中一些放回队列中以供稍后处理。
我这样做的方法是将它们的 VisibilityTimeout
设置为 0,这使它们立即对其他消费者可见。这记录在案 here .
问题是,在这样做几次之后,消息的 ReceiveCount
达到 maxReceiveCount
,这导致消息被移动到 DLQ。我想知道我是否可以通过某种方式重置消息的 ReceiveCount
来避免这种情况。
我目前能想到的唯一选择是将消息的副本发送回队列的开头并删除原始消息。
最佳答案
I'm wondering if I can somehow reset the message's ReceiveCount to avoid that.
遗憾的是,您无法重置它,因为它由 SQS 自动管理。你无法控制它。
如果您不想使用多个 SQS,一个用于不同的目的和消费者,我能想到的唯一解决方案是简单地增加 maxReceiveCount
来说明那些额外的阅读。因此,如果您知道您的消息将被读取并返回到队列中,比如说 5 次,然后例如将您的 maxReceiveCount
增加到 8。这意味着如果消息的阅读次数是预期的 3 倍,则说明它有问题。
关于amazon-web-services - AWS SQS 如何重置消息的 ReceiveCount,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67640034/
我是一名优秀的程序员,十分优秀!