spring - @SqsListener with deletePolicy = SqsMessageDeletionPolicy.ALWAYS 不会从队列中删除消息
问题描述
我使用 @SqsListener 和 deletePolicy = SqsMessageDeletionPolicy.ALWAYS 如下:
@Override
@SqsListener(value = "${sqs.queueName}", deletionPolicy = SqsMessageDeletionPolicy.ALWAYS)
public void processMessage(String messageAsJson) {
log.info("received a new SQS message: {}", messageAsJson);
try {
MessageResponse messageResponse = this.objectMapper.readValue(messageAsJson, MessageResponse.class);
iMessageHandler.handle(messageResponse);
} catch (Exception e) {
log.error("exception in reading SQS message {} with error {}", messageAsJson, e);
return;
}
}
当我打开 AWS 控制台并单击“轮询消息”时,我可以看到一些“接收计数”> 1 的消息:
我读到这意味着这些消息返回到队列中。但我指定
deletionPolicy = SqsMessageDeletionPolicy.ALWAYS
那么为什么会这样呢?
谢谢!
解决方案
推荐阅读
- azure - AD FS 配置
- vuejs2 - 如何摆脱 NuxtJs 中不匹配的 childNodes 与 VNodes
- redux - 是否可以在执行异步操作的类中保留 redux 调度功能?
- reactjs - 在 React 中,第一次出现在页面上时以不同方式呈现组件的最佳方式是什么?
- r-markdown - 您可以将编织的 HTML 输出恢复为 R 中的原始 RMD/代码吗?
- date - 动态解析日期
- javascript - PIXI.js Node.js - 图片元素包含跨域数据,可能无法加载
- xml - 如何使用 XSD 将 XML 文件读入coldfusion
- performance-testing - 为什么我收到 Gatling 错误:“[gatling-http-1-14] WARN io.netty.channel.nio.NioEventLoop”并且 Gatling 在任何错误后都会杀死 VU
- flutter - 如何在 Flutter 中打开弹出窗口时修复背景变黑