更新时间:2022-02-21 GMT+08:00

向指定队列发送消息

功能介绍

向指定队列发送消息,可同时发送多条消息。

  • 每次最多发送10条。
  • 每次发送的消息总负载不超过512KB。
  • Kafka队列的消息保存时间在创建队列时可以设置,可设置范围为1~72小时。其他队列的消息最大保存时长为72小时。

URI

POST /v1.0/{project_id}/queues/{queue_id}/messages

参数说明请参见表1

表1 参数说明

名称

类型

是否必选

说明

project_id

String

项目ID。

queue_id

String

指定的队列ID。

请求消息

请求参数

请求参数如表2表3所示。

表2 请求参数

名称

类型

是否必选

说明

messages

Array

消息列表。

returnId

Boolean

发送消息成功后,是否返回Message ID,默认为false,设置为true时,返回参数才有Message ID。

表3 messages参数

名称

类型

是否必选

说明

body

JSON

消息正文。

attributes

JSON对象

属性列表,包含属性名称和属性值。

同一条消息的属性名称不可重复,否则属性值将被覆盖。

tags

JSON对象

消息标签,即Label,是通过对消息增加Label来区分队列中的消息分类,DMS允许消费者按照Label对消息进行过滤,确保消费者最终只消费到他关心的消息类型。

消息标签只能包含a~z,A~Z,0-9,-,_,长度是[1,64]。

最多可添加3个标签。

delayTime

Long

延时消息的延时时长。

延时消息是指消息发送到DMS服务后,并不期望这条消息立即被消费,而是延迟一段时间后才能被消费。

取值范围:0~604800000

单位:毫秒

不配置该参数或者配置为0,表示无延时。

配置为浮点数时,自动取小数点前面的整数值,比如配置为6000.9,则自动取值为6000。

仅NORMAL队列和FIFO队列可以设置延时消息,Kafka队列不支持延时消息的功能,如果向Kafka队列生产延时消息,提示{"code":10540010, "message":"Invalid request format: kafka queue message could not have delayTime."}。

请求示例

{
    "messages" : [{
            "body" : "TEST11",
            "attributes" : {
                "attribute1" : "value1",
                "attribute2" : "value2"
            },
            "tags" : ["tag1", "tag2"],
             "delayTime":60000
        }, {
            "body" : {
                "foo" : "test02"
            },
            "attributes" : {
                "attribute1" : "value1",
                "attribute2" : "value2"
            },
            "tags" : ["tag1", "tag2"],
            "delayTime":10000
        }
    ],
    "returnId" : "true"
}

响应消息

响应参数

响应参数如表4表5所示。

表4 响应参数

参数

类型

描述

message

Array

消息列表。

表5 messages响应参数

参数

类型

描述

error

String

错误描述信息。

error_code

Integer

错误码。

state

Integer

发送消息的状态。

0:表示发送成功。

1:表示发送失败,失败原因参考对应的error和error_code。

id

String

消息ID。

响应示例

{
  "messages" : [{
      "error" : null,
      "state" : 0,
      "id" : "eyJ0b3BpYyI6InEtNjdjMDFiOTI5NDQxNDRhMTlkMmRhOTY4ZWYzNGE5MTItNGZhMWQ5YTQtNjRhNC00MmYxLTk3MzAtZGU4NTFjMTU0Mjg2Iiwib2Zmc2V0IjoyMzQ4LCJwYXJ0aXRpb24iOjIsInRhcmdldFRvcGljIjpudWxsfQ==",
      "error_code" : null
    },
    {
      "error" : null,
      "state" : 0,
      "id" : "jhGwdWEpnyrXMlauz72j+7cD8W9F4I2HAk6GyQFJCJMX6Va3W7KlA2IVCZ+hYHFcKqA0n1DQLdKMCyGKvd0ZrQRfwHzjAabgYnWg2VCHtb12fJkzKMQB4JwwcyHvsPNffmFW6gxC4VVaT4cHf8sLYzrZmES1fd36r5o9wpbpqOgi2I==",
      "error_code" : null
    }
  ]
}

状态码

操作成功的状态码如表6所示,操作失败的状态码请参考状态码

表6 状态码

状态码

描述

201

发送消息成功。