接口描述
本接口(ReceiveMessage)用于消费队列中的一条消息。
ReceiveMessage 操作会将取得的消息状态变成 inactive,inactive 的时间长度由队列属性 visibilityTimeout 指定(详见 CreateQueue 接口)。 建议消费者在 visibilityTimeout 时间内消费成功后需要调用(batch)DeleteMessage 接口删除该消息,否则该消息将会重新变成为 active 状态,此消息又可被消费者重新消费,保证消息至少消费一次,但是不能保证幂等性, 业务侧需要有去重逻辑。
公网地址:
https://cmq-gz.publicXXX.tencenttdmq.com
内网地址:
http://gz.mqadapter.cmq.tencentyun.com
注意:
不同地域的 API 调用地址 URL 会有所变化。
任何时候(包括内测期间),如果使用外网域名产生公网下行流量,都会收取流量费用。 所以强烈建议服务在腾讯云上的用户使用内网域名,内网不会产生流量费用。
输入参数
参数名称 | 是否必选 | 类型 | 描述 |
queueName | 是 | String | 队列名字,在单个地域同一账号下唯一。 队列名称是一个不超过64个字符的字符串,必须以字母为首字符,剩余部分可以包含字母、数字和横划线(-)。 |
pollingWaitSeconds | 否 | Int | 本次请求的长轮询等待时间。取值范围0 - 30秒,如果不设置该参数,则默认使用队列属性中的 pollingWaitSeconds 值。 |
输出参数
参数名称 | 类型 | 描述 |
code | Int | |
message | String | 错误提示信息。 |
requestId | String | 服务器生成的请求 ID。出现服务器内部错误时,用户可提交此 ID 给后台定位问题。 |
msgBody | String | 本次消费的消息正文。 |
msgId | String | 本次消费的消息唯一标识 ID。 |
receiptHandle | String | 每次消费返回唯一的消息句柄。用于删除该消息,仅上一次消费时产生的消息句柄能用于删除消息。消费者在 visibilityTimeout 时间内消费成功后使用该句柄调用(batch)DeleteMessage 接口删除该消息,如果超出 visibilityTimeout 时间,那么该句柄将失效。 |
enqueueTime | Int | 消费被生产出来,进入队列的时间。返回 Unix 时间戳,精确到秒。 |
nextVisibleTime | Int | 消息的下次可见(可再次被消费)时间。返回 Unix 时间戳,精确到秒。 |
dequeueCount | Int | 保留字段。 |
firstDequeueTime | Int | 保留字段。 |
错误码
示例
输入:
输出:
{"code" : 0,"message" : "","requestId":"14534664555","msgBody":"helloworld1","msgId":"123345346","receiptHandle": "283748239349283","enqueueTime": 1462351990,"firstDequeueTime": 1462352990,"nextVisibleTime": 1462352999,"dequeueCount": 2}