接口描述
本接口(BatchReceiveMessage)用于消费队列中的多条(目前最多16条)消息。
BatchReceiveMessage 操作会将取得的消息状态变成 inactive,inactive 的时间长度由 Queue 属性 visibilityTimeout 指定(详见 CreateQueue 接口)。 消费者在 visibilityTimeout 时间内消费成功后需要调用 (batch)DeleteMessage 接口删除该消息,否则该消息将会重新变成为 active 状态,此消息又可被消费者重新消费。
公网/内网接口请求域名,在 TDMQ CMQ 版控制台 的队列服务 > API 请求地址处复制。CMQ 的 API 调用地址示例如下:
- 公网地址:
https://cmq-gz.publicXXX.tencenttdmq.com
- 内网地址:
http://gz.mqadapter.cmq.tencentyun.com
注意:
- 不同地域的 API 调用地址 URL 会有所变化。
- 任何时候(包括内测期间),如果使用外网域名产生公网下行流量,都会收取流量费用。 所以强烈建议服务在腾讯云上的用户使用内网域名,内网不会产生流量费用。
输入参数
以下请求参数列表仅列出了接口请求参数,其它参数请参见 公共请求参数 页面。
参数名称 | 是否必选 | 类型 | 描述 |
---|---|---|---|
queueName | 是 | String | 队列名字,在单个地域同一账号下唯一。 队列名称是一个不超过64个字符的字符串,必须以字母为首字符,剩余部分可以包含字母、数字和横划线(-)。 |
numOfMsg | 是 | Int | 本次消费的消息数量。取值范围1 - 16。 |
pollingWaitSeconds | 否 | Int | 本次请求的长轮询等待时间。取值范围0 - 30秒,如果不设置该参数,则默认使用队列属性中的 pollingWaitSeconds 值。 |
输出参数
参数名称 | 类型 | 描述 |
---|---|---|
code | Int | 0:表示成功,others:错误,详情请参见 公共错误码。 |
message | String | 错误提示信息。 |
requestId | String | 服务器生成的请求 ID。出现服务器内部错误时,用户可提交此 ID 给后台定位问题。 |
msgInfoList | Array | message 信息列表,每个元素是一条消息的具体信息。 |
msgInfoList 定义如下:
参数名称 | 类型 | 描述 |
---|---|---|
msgBody | String | 消费的消息正文。 |
msgId | String | 消费的消息唯一标识 ID。 |
receiptHandle | String | 每次消费返回唯一的消息句柄,用于删除消费。仅上一次消费该消息产生的句柄能用于删除消息。且有效期是 visibilityTimeout,即取出消息隐藏时长,超过该时间后该句柄失效。 |
enqueueTime | Int | 消费被生产出来,进入队列的时间。返回 Unix 时间戳,精确到秒。 |
firstDequeueTime | Int | 保留字段。 |
nextVisibleTime | Int | 消息的下次可见(可再次被消费)时间。返回 Unix 时间戳,精确到秒。 |
dequeueCount | Int | 保留字段。 |
错误码
详情请参见 公共错误码。
示例
输入:
https://domain/v2/index.php?Action=BatchReceiveMessage &queueName=test-queue-123 &numOfMsg=2 &<公共请求参数>
输出:
{
"code": 0,
"message": "",
"requestId": "14534664555",
"msgInfoList":
[
{
"msgBody": "helloworld1",
"msgId": "123345346",
"receiptHandle": "283748239349283",
"enqueueTime": 1462351990,
"firstDequeueTime": 1462352990,
"nextVisibleTime": 1462352999,
"dequeueCount": 2
},
{
"msgBody": "helloworld2",
"msgId": "1233453456",
"receiptHandle": "28374345763283",
"enqueueTime": 1462351990,
"firstDequeueTime": 1462352990,
"nextVisibleTime": 1462352999,
"dequeueCount": 2
}
]
}