消费消息

最近更新时间:2019-05-09 16:53:27

接口描述

本接口 (ReceiveMessage) 用于消费队列中的一条消息。
ReceiveMessage 操作会将取得的消息状态变成 inactive,inactive 的时间长度由队列属性 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个字符的字符串,必须以字母为首字符,剩余部分可以包含字母、数字和横划线(-)。
pollingWaitSeconds Int 本次请求的长轮询等待时间。取值范围0 - 30秒,如果不设置该参数,则默认使用队列属性中的 pollingWaitSeconds 值。

输出参数

参数名称 类型 描述
code Int 0:表示成功,others:错误,详细错误见 公共错误码
message String 错误提示信息。
requestId String 服务器生成的请求 ID。出现服务器内部错误时,用户可提交此 ID 给后台定位问题。
msgBody String 本次消费的消息正文。
msgId String 本次消费的消息唯一标识 ID。
receiptHandle String 每次消费返回唯一的消息句柄。用于删除该消息,仅上一次消费时产生的消息句柄能用于删除消息。
enqueueTime Int 消费被生产出来,进入队列的时间。返回 Unix 时间戳,精确到秒。
firstDequeueTime Int 第一次消费该消息的时间。返回 Unix 时间戳,精确到秒。
nextVisibleTime Int 消息的下次可见(可再次被消费)时间。返回 Unix 时间戳,精确到秒。
dequeueCount Int 消息被消费的次数。

错误码

请查看 公共错误码

示例

输入:

 https://domain/v2/index.php?Action=ReceiveMessage
 &queueName=test-queue-123
 &<公共请求参数>

输出:

{
"code" : 0,
"message" : "",
"requestId":"14534664555",
"msgBody":"helloworld1",
"msgId":"123345346",
"receiptHandle": "283748239349283",
"enqueueTime": 1462351990,
"firstDequeueTime": 1462352990,
"nextVisibleTime": 1462352999,
"dequeueCount": 2
}