基本信息
描述
该接口用于消费者消费队列中的消息,ReceiveMessage 操作会将取得的消息状态变成 Inactive,Inactive 的时间长度由 Queue 属性 VisibilityTimeout 指定(详见CreateQueue接口)。消费者在 VisibilityTimeout 时间内消费成功后需要调用 DeleteMessage 接口删除该消息,否则该消息将会重新变成为 Active 状态,此消息又可被消费者重新消费。
Request
Request的构造主要由以下几个部分组成:
请求行
GET /queues/$queueName/messages?waitseconds=10 HTTP/1.1
特有URI参数
[backcolor=transparent]说明:
① [backcolor=transparent]如果 ReceiveMessage 请求附带 waitseconds 参数,在 Queue 无消息时,此次 ReceiveMessage 请求进入到Polling状态(即长轮询),等待的时长为waitseconds,在这段时间中,如果Queue 有消息写入会返回给用户;如果未设置 waitseconds ,则默认使用所属 Queue 的 PollingWaitSeconds 属性(参见 CreateQueue 接口)。
② [backcolor=transparent]当进入到长轮询之后,建议您降低长轮询的并发数。
目前MNS服务端会根据用户的长轮询数量、长轮询等待时间、访问IP数量等多个因素动态设置长轮询防攻击并发上限值;当队列无消息时超过长轮询上限值的请求将无法进入到监听状态并直接返回404MessageNotExist(按请求量正常计费)。如果您有临时提升长轮询上限值的需求,请及时提工单联系我们,避免产生不必要的费用支出。
特有Request Header
无,请参考 [backcolor=transparent]调用方式/公共参数
Request Body
无
Response
返回消息由返回状态行,HTTP头和消息体三部分组成。
HTTP Status Code
HTTP/1.1 200 OK
特有Response Header
无,请参考 [backcolor=transparent]调用方式/公共参数
Response Body
返回的结果为XML格式,返回Message消息正文及消息属性。
Special Error
[backcolor=transparent]请求示例:
[backcolor=transparent]