接口描述
本接口(BatchReceiveMessage)用于消费队列中的多条(目前最多16条)消息。
BatchReceiveMessage 操作会将取得的消息状态变成 inactive,inactive 的时间长度由 Queue 属性 visibilityTimeout 指定(详见 CreateQueue 接口)。 消费者在 visibilityTimeout 时间内消费成功后需要调用 (batch)DeleteMessage 接口删除该消息,否则该消息将会重新变成为 active 状态,此消息又可被消费者重新消费。
公网地址:
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 | |
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}]}