更新时间:2022-02-21 GMT+08:00

确认已消费死信消息

功能介绍

确认已经消费指定的死信消息。

在消费者消费死信消息期间,死信消息仍然停留在队列中,但死信消息从被消费开始的30秒内不能被该消费组再次消费,若在这30秒内没有被消费者确认消费,则DMS认为死信消息未消费成功,将可以被继续消费。

如果死信消息被确认消费成功,该死信消息将不能被该消费组再次消费,死信消息的保留时间为72小时(除非消费组被删除),72小时后会被删除。

消息批量消费确认时,必须严格按照消息消费的顺序提交确认,DMS按顺序判定消息是否消费成功,如果某条消息未确认或消费失败,则不再继续检测,默认后续消息全部消费失败。建议当对某一条消息处理失败时,不再需要继续处理本批消息中的后续消息,直接对已正确处理的消息进行确认。

仅NORMAL队列和FIFO队列可以开启死信消息,因为只有NORMAL队列和FIFO队列可消费死信消息。

URI

POST /v1.0/{project_id}/queues/{queue_id}/groups/{consumer_group_id}/deadletters/ack

参数说明请参见表1

表1 参数说明

名称

类型

是否必选

说明

project_id

String

项目ID。

queue_id

String

队列ID。

consumer_group_id

String

消费组ID。

请求消息

请求参数

请求参数如表2表3所示。

表2 请求参数

名称

类型

是否必选

说明

message

Array

确认消息数组。

表3 message参数

名称

类型

是否必选

说明

handler

String

消费时返回的ID。

status

String

客户端处理数据的状态。

取值为“success”或者“fail”。

请求示例

{
  "message": [
    {
      "handler": "eyJjb25zdW1lckdyb3VwIjoibXFzX2NvbnN1bWVyXzMiLCJjb25zdW1lckluc3RhbmNlIjoicmVzdC1jb25zdW1lci1hMWM5YTRlMy1mNTY5LTQyYTgtOTQ1Ni1hYmU0NDVmZjUxYzkiLCJjb3VudCI6MSwib2Zmc2V0IjowLCJvZmZzZXRJbmRleCI6LTEsInBhcnRpdGlvbiI6MiwidG9waWMiOiJxLWI3OGE5MGFlMmExMzRiNGI4YjJiYTMwYWNhYjRlMjNhLTA3NWFlN2RhLTZjZTUtNDk2Ni05NDBjLTE3YzE5ZmI1MTc1ZSJ9",
      "status": "success"
    }
  ]
}

响应消息

响应参数

响应参数如表4所示。

表4 响应参数

参数

类型

描述

success

Integer

确认成功的数目(如果为N,则表示前N条死信消息确认成功)。

fail

Integer

确认失败的数目(如果为N,则表示后N条死信消息确认失败)。

响应示例

{
  "success": 1, 
  "fail": 2
}

状态码

操作成功的状态码如表5所示,操作失败的状态码请参考状态码

表5 状态码

状态码

描述

200

消息确认成功。