@SqsListener with deletePolicy = SqsMessageDeletionPolicy.ALWAYS 不会从队列中删除消息

时间:2021-06-10 07:27:01

标签: spring spring-cloud amazon-sqs

我使用 @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 的消息:

enter image description here

我读到这意味着这些消息返回到队列中。但我指定了

deletionPolicy = SqsMessageDeletionPolicy.ALWAYS

为什么会这样?

谢谢!

0 个答案:

没有答案