描述
本接口用于发送消息到指定的消息队列,普通消息发送到消息队列随即可被消费者消费。但是如果生产者发送一个消息不想马上被消费者消费(典型的使用场景为定期任务),生产者在发送消息时设置DelaySeconds参数就可以达到此目标。发送带DelaySeconds参数值大于0的消息初始状态为Delayed,此时消息不能被消费者消费,只有等DelaySeconds时间后消息变成Active状态后才可消费。
[backcolor=transparent]Tip:
发送消息时指定DelaySeconds参数的优先级高于延时消息队列的DelaySeconds属性,即两个DelaySeconds属性设置的值不同时以发送消息时指定的值为准。
Request
Request的构造主要由以下几个部分组成:
请求行
POST /$queueName/messages HTTP/1.1
特有Request Header
无,请参考公共请求头
Request Body
Request Body为XML格式,其中包含创建Message的属性。
Response
返回消息由返回状态行,HTTP头和消息体三部分组成。
HTTP Status Code
HTTP/1.1 201 Created
特有Response Header
无,请参考公共返回头
Response Body
返回的结果为XML格式,返回Message的MessageId和MessageBodyMD5子元素。
Special Error
[backcolor=transparent]请求示例:
[backcolor=transparent]
ReceiveMessage
描述
本接口用于消费者消费消息队列的消息,ReceiveMessage操作会将取得的消息状态变成Inactive,Inactive的时间长度由Queue属性VisibilityTimeout指定(详见CreateQueue接口)。 消费者在VisibilityTimeout时间内消费成功后需要调用DeleteMessage接口删除该消息,否则该消息将会被重新置为Active,此消息又可被消费者重新消费。
Request
Request的构造主要由以下几个部分组成:
请求行
GET /$queueName/messages?waitseconds=10 HTTP/1.1
特有URI参数
[backcolor=transparent]说明:
① 如果ReceiveMessage请求附带waitseconds参数,则在Queue无消息时,此次ReceiveMessage请求进入到Polling等待时长为waitseconds;如果未设置waitseconds,则默认使用所属Queue的PollingWaitSeconds属性(参见CreateQueue接口)。
特有Request Header
无,请参考公共请求头
Request Body
无
Response
返回消息由返回状态行,HTTP头和消息体三部分组成。
HTTP Status Code
HTTP/1.1 200 OK
特有Response Header
无,请参考公共返回头
Response Body
返回的结果为XML格式,返回Message消息正文及消息属性。
Special Error
[backcolor=transparent]
[backcolor=transparent]请求示例:
[backcolor=transparent]
DeleteMessage
描述
本接口用于删除已经被消费过的消息,消费者需将上次消费后得到的ReceiptHandle 作为参数来定位要删除的消息。本操作只有在NextVisibleTime时刻之前执行才能成功;如果过了NextVisibleTime时刻,消息重新变回Active状态,ReceiptHandle就会失效,删除失败,需重新消费获取新的ReceiptHandle。
Request
Request的构造主要由以下几个部分组成:
请求行
DELETE/$queueName/messages?receiptHandle=<receiptHandle> HTTP/1.1
特有URI参数
- 特有Request Header 无,请参考共同Request头
- Request Body 无
Response
返回消息由返回状态行,HTTP头和消息体三部分组成。
HTTP Status Code
HTTP/1.1 204 NoContent
特有Response Header
无,请参考公共返回头
Response Body
无
Special Error
[backcolor=transparent]
[backcolor=transparent]请求示例:
[backcolor=transparent]
PeekMessage
描述
本接口用于消费者查看消息,PeekMessage与ReceiveMessage不同,PeekMessage并不会改变消息的状态,即被PeekMessage获取消息后消息仍然处于Active状态,仍然可被查看或消费;而后者操作成功后消息进入Inactive,在VisibilityTimeout的时间内不可被查看和消费。
Request
Request的构造主要由以下几个部分组成:
请求行
GET /$queueName/messages?peekonly=true HTTP/1.1
URI参数
peekonely=true表示这次请求只是去查看队列顶部的消息并不会引起消息的状态改变
特有Request Header
无,请参考共同Request头
Request Body
无
Response
返回消息由返回状态行,HTTP头和消息体三部分组成。
HTTP Status Code
HTTP/1.1 200 OK
特有Response Header
无,请参考公共返回头
Response Body
返回的结果为XML格式,返回Message消息正文及消息属性。
Special Error
[backcolor=transparent]
[backcolor=transparent]请求示例:
[backcolor=transparent]
ChangeMessageVisibility
描述
本接口用于修改被消费过并且还处于的Inactive的消息到下次可被消费的时间,成功修改消息的VisibilityTimeout后,返回新的ReceiptHandle。
Request
Request的构造主要由以下几个部分组成:
请求行
PUT /$queueName/messages?receiptHandle=<receiptHandle>&visibilityTimeout=<visibilitytimeout> HTTP/1.1
URI参数
特有Request Header
无,请参考共同Request头
Request Body
无
Response
返回消息由返回状态行,HTTP头和消息体三部分组成。
HTTP Status Code
HTTP/1.1 200 OK
特有Response Header
无,请参考公共返回头
Response Body
Special Error
[backcolor=transparent]
[backcolor=transparent]请求示例:
[backcolor=transparent]