1.6.1 创建/删除/清理 Queue

优质
小牛编辑
134浏览
2023-12-01

创建Queue

方法参数CreateQueueRequest

queueName : String : required

新建的Queue的名称 应只包括字母(大小写敏感)与数字,如testQueue1

queueAttribute : QueueAttribute : optional

新建的Queue的属性,其中包含可选的用户自定义属性,具体如下:

  1. delaySeconds : int : optional
    延迟时间。Message进入Queue之后,在经过延迟时间后才变得可见,从而被用户接收
    默认值:0
    合法范围: [0, 900]
    EMQ可为用户提供更大的延迟时间,如3个月.需用户联系管理员配置.
  2. invisibilitySeconds : int : optional
    不可见时间。某条Message被用户接收后,如果没有被用户及时删除,经过不可见时间后,将重新变为可见
    默认值:30
    合法范围: [0, 43200]
  3. receiveMessageWaitSeconds : int : optional
    长轮询的超时时间。长轮询时,请求将被阻塞;直到读到message或超时才返回。
    默认为0,表示短轮询. 默认值:0
    合法范围: [0, 20]
  4. receiveMessageMaximumNumber : int : optional
    一次receiveMessage请求最多可能获取的message条数
    默认值:100
    合法范围: [1, 100]
  5. messageRetentionSeconds : int:optional
    message保留时间。message的过期时间以(sendTimestamp + delayTime)作为计算起点.
    超过保留时间的消息,无论是否已经被ACK,都有可能被删除. 默认值:4天
    合法范围: [60秒,14天]
  6. messageMaximumBytes : int : optional
    队列允许发送的message的最大size,message的属性将被计算在内
    默认值:256 KB
    合法范围:(0, 256 KB]
  7. partitionNumber: int : optional Queue内部的分片个数,用户不可配.当qps较高或消息堆积数量较多时,需联系管理员增加分片个数,以免影响队列性能.
    默认值:4, id为0-3
    合法范围:[1, 256]
  8. userAttributes : Map< String, String > : optional
    用户自定义Queue属性
queueQuota : QueueQuota : optional

新建的Queue的配额,包含对这个Queue读写请求数目限制. 除了单个Queue有配额限制之外, 一个用户所有Queue的配额总和以及能够创建的Queue的总数也有限制.

- throughput : Throughput : optional

设置对Queue的每秒读写请求数配额. 包含两个字段:

  1. readQps : long : optional
    表示每秒对Queue进行读访问请求的最大次数, 单位为req/sec
    默认值:50
    合法范围: (0, 100000]
  2. writeQps : long : optional
    表示每秒对Queue进行写访问请求的最大次数, 单位为req/sec
    默认值:50
    合法范围: (0, 100000]
enablePriority : boolean : optional

设置Queue是否允许消息优先级,详见PriorityQueue 默认值:False

topicQueue : boolean : optional

设置Queue是否为topicQueue,详见TopicQueue 默认值:False

defaultTagName : String : optional

设置本属性可以为Queue的defaultTag起别名,并在之后的操作中通过别名来使用defaultTag 创建别名后,用户仍可以使用""(空)来引用defaultTag 关于defaultTag的详细解释,可以参见Tag 相关操作

方法返回CreateQueueResponse

queueName : String

成功创建的Queue的名称。之后所有的请求都应传入这里返回的queueName作为参数,如getQueueInfo()sendMessage()

注: 这里返回的queueName与CreateQueueRequest中的不一样,返回的名称会加上用户的id作为前缀. 如用户的developerId为1111, 则这里返回1111/testQueue1

queueAttribute : QueueAttribute

Queue的属性

queueQuota : QueueQuota

Queue的配额

enablePriority : boolean

Queue是否允许消息优先级。

topicQueue : boolean

Queue是否是topicQueue

defaultTagName : String

Queue的defaultTag的别名,默认为空


删除Queue

方法参数DeleteQueueRequest

queueName : String : required

需要删除的Queue的名称

注: 这里的queueName应设置为CreateQueueResponse中的返回。后面的方法都是如此,不再提示

方法返回void


清除Queue中所有的message,并保持Queue的属性不变

方法参数PurgeQueueRequest

queueName : String : required

需清除message的Queue的名称

方法返回void