接口描述
本接口(BatchReceiveMessage)用于消费队列中的多条(目前最多16条)消息。
BatchReceiveMessage 操作会将取得的消息状态变成 inactive,inactive 的时间长度由 Queue 属性 visibilityTimeout 指定(详见 CreateQueue 接口)。 消费者在 visibilityTimeout 时间内消费成功后需要调用 (batch)DeleteMessage 接口删除该消息,否则该消息将会重新变成为 active 状态,此消息又可被消费者重新消费。
- 外网接口请求域名:
https://cmq-queue-{$region}.api.qcloud.com
- 内网接口请求域名:
http://cmq-queue-{$region}.api.tencentyun.com
上述域名中的{$region}需用具体地域替换:gz(广州),sh(上海),bj(北京),shjr(上海金融),szjr(深圳金融),hk(中国香港),cd(成都),ca(北美),usw(美西),sg(新加坡)。公共参数中的 region 值要与域名的 region 值保持一致,如果出现不一致的情况,以域名的 region 值为准,将请求发往域名 region 所指定的地域。
注意:任何时候(包括内测期间),如果使用外网域名产生公网下行流量,都会收取流量费用。 所以强烈建议服务在腾讯云上的用户使用内网域名,内网不会产生流量费用。
输入参数
以下请求参数列表仅列出了接口请求参数,其它参数见 公共请求参数 页面。
参数名称 | 是否必选 | 类型 | 描述 |
---|---|---|---|
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
}
]
}