基本信息
Name | Value |
[backcolor=transparent]API | SendMessage |
[backcolor=transparent]RAM授权操作 | mns:SendMessage |
[backcolor=transparent]资源 | acs:mns:$region:$accountid:/queues/$queueName/messages |
该接口用于发送消息到指定的队列,普通消息发送到队列随即可被消费者消费。但是如果生产者发送一个消息不想马上被消费者消费(典型的使用场景为定期任务),生产者在发送消息时设置 DelaySeconds 参数就可以达到此目的。发送带 DelaySeconds 参数值大于0的消息初始状态为 Delayed,此时消息不能被消费者消费,只有等 DelaySeconds 时间后消息变成 Active 状态后才可消费。
POST /queues/$queueName/messages HTTP/1.1
无,请参考 [backcolor=transparent]调用方式/公共参数
Request Body为XML格式,其中包含创建Message的属性。
参数名称 | 说明 | 参数值 | 选项 |
MessageBody | 消息正文 | UTF-8字符集 | Required |
DelaySeconds | DelaySeconds 指定的秒数延后可被消费,单位为秒 | 0-604800秒(7天)范围内某个整数值,默认值为0 | Optional |
Priority | 指定消息的优先级权值,优先级越高的消息,越容易更早被消费 | 取值范围1~16(其中1为最高优先级),默认优先级为8 | Optional |
HTTP/1.1 201 Created
无,请参考 [backcolor=transparent]调用方式/公共参数
返回的结果为XML格式,返回 Message 的 MessageId 和 MessageBodyMD5 子元素。
参数名称 | 说明 |
MessageId | 消息编号,在一个队列唯一 |
MessageBodyMD5 | 消息正文的MD5值 |
ReceiptHandle | 发送延迟消息后返回的消息句柄 |
错误代码 | 错误消息 | 状态码 |
QueueNotExist | The queue name you provided is not exist. | 404 |
MalformedXML | The XML you provided was not well-formed. | 400 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云的MNS(Message Service)提供了发送消息到指定队列的功能,允许用户控制消息的消费时机,比如通过设置DelaySeconds
参数来延后消息被消费者处理的时间。下面是对您提供信息的一个总结和补充说明:
DelaySeconds
参数实现延时消费。DelaySeconds
参数,单位为秒,有效范围是0至604800秒(即7天)。默认情况下,如果不设置或设置为0,则消息发送后立即可被消费。Priority
),取值1至16,其中1表示最高优先级,这有助于控制消息的消费顺序。/queues/$queueName/messages
,其中$queueName
需要替换为实际的队列名称。MessageBody
字段,以及可选的DelaySeconds
和Priority
字段。MessageId
、消息正文的MD5摘要MessageBodyMD5
,如果是延迟消息还会返回ReceiptHandle
。DelaySeconds
超出0到604800的范围,状态码400。虽然示例请求的具体内容未给出,但一个基本的请求示例可能如下所示(XML Body部分):
<SendMessageRequest>
<MessageBody>您的消息内容</MessageBody>
<DelaySeconds>3600</DelaySeconds> <!-- 延迟1小时 -->
<Priority>5</Priority> <!-- 优先级设置为5 -->
</SendMessageRequest>
请确保在实际应用中,将上述XML内容填充到POST请求的Body中,并且根据实际情况调整队列名、消息内容、延迟时间及优先级等参数。