閱讀224 返回首頁    go 汽車大全


Queue操作__曆史協議_API使用手冊_消息服務-阿裏雲

描述

本接口用於創建一個新的消息隊列。

消息隊列名稱是一個不超過256個字符的字符串,必須以字母為首字符,剩餘部分中可以包含字母、數字和橫劃線(-)組成。

Request

Request的構造主要由以下幾個部分組成:

  • 請求行

    PUT /$queueName HTTP/1.1

  • 特有Request Header

    無,請參考公共請求頭

  • Request Body

    Request Body為XML格式,XML中包含創建Queue的屬性,這些屬性都為可選屬性。

參數名稱 說明 參數值
DelaySeconds 發送到該Queue的所有消息默認將以DelaySeconds參數指定的秒數延後可被消費,單位為秒。 0-604800秒(7天)範圍內某個整數值,默認值為0
MaximumMessageSize 發送到該Queue的消息體的最大長度,單位為byte。 1024(1K)-65536(64K)範圍內的某個整數值,默認值為65536(64K)。
MessageRetentionPeriod 消息在該Queue中最長的存活時間,從發送到該隊列開始經過此參數指定的時間後,不論消息是否被取出過都將被刪除,單位為秒。 60 (1分鍾)-1296000 (15 天)範圍內某個整數值,默認值345600 (4 天)
VisibilityTimeout 消息從該Queue中取出後從Active狀態變成Inactive狀態後的持續時間,單位為秒。 1-43200(12小時)範圍內的某個值整數值,默認為30(秒)
PollingWaitSeconds 當Queue消息量為空時,針對該Queue的ReceiveMessage請求最長的等待時間,單位為秒。 0-30秒範圍內的某個整數值,默認為0(秒)

說明:

隻要Queue設置了PollingWaitSeconds,針對該Queue的所有ReceiveMessage請求在Queue無消息時,都將默認進入到Polling等待狀態,在PollingWaitSeconds期間一直保持無消息,則會返回MessageNotExist;如果在此期間有新的消息進入到Queue中,則會喚醒相應的ReceiveMessage請求進行返回。

Response

返回消息由返回狀態行,HTTP頭和消息體三部分組成。

  • HTTP Status Code

    HTTP/1.1 201 Created在同一個所有者名下的消息隊列不能重名,當出現創建重名消息隊列時,如果創建消息隊列的屬性與已經存在的消息隊列的屬性相同,返回204(No Content);否則返回409(Conflict)。

  • 特有Response Header

參數名稱 說明
Location 返回創建的QueueURL,格式如下:https://$AccountId.mqs-<Region>.aliyuncs.com/$queueName
  • Response Body

Special Error

錯誤代碼 錯誤消息 狀態碼
QueueAlreadyExist The queue you want to create is already exist. 409
InvalidArgument The value of Element should between Low and High seconds/bytes. 400

請求示例:

  1. PUT /$queueName HTTP/1.1
  2. Host: $AccountId.mqs-cn-hangzhou.aliyuncs.com
  3. Date: Wed, 08 Mar 2012 12:00:00 GMT
  4. x-mqs-version: 2014-07-08
  5. Authorization:MQS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=
  6. <?xml version=”1.0” encoding=”UTF-8”?>
  7. <Queue xmlns=”https://mqs.aliyuncs.com/doc/v1/”>
  8. <VisibilityTimeout>60</VisibilityTimeout>
  9. <MaximumMessageSize>65536</MaximumMessageSize>
  10. <MessageRetentionPeriod>1209600</MessageRetentionPeriod>
  11. </Queue>

返回示例:

  1. HTTP/1.1 201 Created
  2. x-mqs-request-id: 512B2A634403E52B1956133E
  3. x-mqs-version: 2015-06-06
  4. Location: https://$AccountId.mqs-cn-hangzhou.aliyuncs.com/$queueName

SetQueueAttributes

描述

本接口用於修改消息隊列的屬性。

Request

Request的構造主要由以下幾個部分組成:

  • 請求行

    PUT /$queueName?metaoverride=true HTTP/1.1

  • URI參數

    metaoverride=true將會修改消息隊列的屬性

  • 特有Request Header

    無,請參考公共請求頭

  • Request Body

    Request Body為XML格式,XML中包含創建Queue的屬性,這些屬性都為可選屬性。

參數名稱 說明 參數值
DelaySeconds 發送到該Queue的所有消息默認將以DelaySeconds參數指定的秒數延後可被消費,單位為秒。 0-604800秒(7天)範圍內某個整數值,默認值為0
MaximumMessageSize 發送到該Queue的消息體的最大長度,單位為byte。 1024(1K)-65536(64K)範圍內的某個整數值,默認值為65536(64K)。
MessageRetentionPeriod 消息在該Queue中最長的存活時間,從發送到該隊列開始經過此參數指定的時間後,不論消息是否被取出過都將被刪除,單位為秒。 60 (1分鍾)-1296000 (15 天)範圍內某個整數值,默認值345600 (4 天)
VisibilityTimeout 消息從該Queue中取出後從Active狀態變成Inactive狀態後的持續時間,單位為秒。 1-43200(12小時)範圍內的某個值整數值,默認為30(秒)
PollingWaitSeconds 當Queue消息量為空時,針對該Queue的ReceiveMessage請求最長的等待時間,單位為秒。 0-30秒範圍內的某個整數值,默認為0(秒)

Response

返回消息由返回狀態行,HTTP頭和消息體三部分組成。

  • HTTP Status Code

    HTTP/1.1 204 No Content

  • 特有Response Header

    無,請參考公共返回頭

  • Response Body

Special Error

錯誤代碼 錯誤消息 狀態碼
InvalidArgument The value of Element should between Low and High seconds/bytes. 400
QueueNotExist The queue name you provided is not exist. 404

請求示例:

  1. PUT /$queueName?metaoverride=true HTTP/1.1
  2. Host: $AccountId.mqs-cn-hangzhou.aliyuncs.com
  3. Date: Wed, 08 Mar 2012 12:00:00 GMT
  4. x-mqs-version: 2014-07-08
  5. Authorization: MQS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=
  6. <?xml version="1.0" encoding="UTF-8" ?>
  7. <Queue xmlns=”https://mqs.aliyuncs.com/doc/v1/”>
  8. <VisibilityTimeout >60</VisibilityTimeout>
  9. <MaximumMessageSize>1024</MaximumMessageSize>
  10. <MessageRetentionPeriod>120</MessageRetentionPeriod>
  11. <DelaySeconds>30</DelaySeconds>
  12. </Queue>

返回示例:

  1. HTTP/1.1 204 No Content
  2. x-mqs-request-id:512B2A634403E52B1956133E
  3. x-mqs-version:2015-06-06

GetQueueAttributes

描述

本接口用於獲取某個已創建的消息隊列的屬性,返回屬性除了創建消息隊列時設置的可設置屬性外,還可以取到消息隊列創建時間、消息隊列屬性最後修改時間以及消息隊列中的各類消息統計數(近似值)。

Request

Request的構造主要由以下幾個部分組成。

  • 請求行

    GET /$queueName HTTP/1.1

  • 特有Request Header

    無,請參考公共請求頭

  • Request Body

Response

返回消息由返回狀態行,HTTP頭和消息體三部分組成。

  • HTTP Status Code

    HTTP/1.1 200OK

  • 特有Response Header

    無,請參考公共返回頭

  • Response Body

    返回的結果為XML格式,格式為: <Queue>Attribute Element List</Queue>

屬性元素列表包括:

參數名稱 說明
QueueName Queue的名稱
CreateTime Queue的創建時間,從1970-1-1 0點整到現在的秒值
LastModifyTime 修改Queue屬性信息最近時間,從1970-1-1 0點整到現在的秒值
DelaySeconds 發送消息到該Queue的所有消息默認將以DelaySeconds參數指定的秒數延後可被消費,單位為秒
MaximumMessageSize 發送到該Queue的消息體的最大長度,單位為byte
MessageRetentionPeriod 消息在該Queue中最長的存活時間,從發送到該隊列開始經過此參數指定的時間後,不論消息是否被取出過都將被刪除,單位為秒
PollingWaitSeconds 當Queue消息量為空時,針對該Queue的ReceiveMessage請求最長的等待時間,單位為秒
Activemessages 在該Queue中處於Active狀態的消息總數,為近似值
InactiveMessages 在該Queue中處於Inactive狀態的消息總數,為近似值
DelayMessages 在該Queue中處於Delayed狀態的消息總數,為近似值

Special Error

錯誤代碼 錯誤消息 狀態碼
QueueNotExist The queue name you provided is not exist. 404

請求示例:

  1. GET /$queueName HTTP/1.1
  2. Host: $AccountId.mqs-cn-hangzhou.aliyuncs.com
  3. Date: Wed, 08 Mar 2012 12:00:00 GMT
  4. x-mqs-version: 2014-07-08
  5. Authorization: MQS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=

返回示例:

  1. HTTP/1.1 200 OK
  2. Connection:close
  3. Content-Type=text/xml;charset=utf-8
  4. Content-Length:145
  5. x-mqs-request-id:512B2A634403E52B1956133E
  6. x-mqs-version:2015-06-06
  7. <?xml version="1.0" encoding="UTF-8"?>
  8. <Queue xmlns=https://mqs.aliyuncs.com/doc/v1/”>
  9. <QueueName>$queueName </QueueName ><!—以實際Queue Name返回 ->
  10. <CreateTime>1250700999</CreateTime >
  11. <LastModifyTime>1250700999</LastModifyTime>
  12. <VisibilityTimeout>60</VisibilityTimeout >
  13. <MaximumMessageSize>65536</MaximumMessageSize>
  14. <MessageRetentionPeriod>65536</MessageRetentionPeriod>
  15. <DelaySeconds>30</DelaySecond>
  16. <PollingWaitSeconds>0</PollingWaitSeconds>
  17. <InactiveMessages>0</InactiveMessages>
  18. <ActiveMessages>20</ActiveMessages>
  19. <DelayMessages >0</DelayMessages>
  20. </Queue>

DeleteQueue

描述

本接口用於刪除一個已創建的消息隊列。

Note:

  1. 使用者必須謹慎使用此接口,一旦刪除消息隊列成功,消息隊列內所有消息也一並刪除,不可恢複。

Request

Request的構造主要由以下幾個部分組成:

  • 請求行

    DELETE /$queueName HTTP/1.1

  • 特有Request Header

    無,請參考公共請求頭

  • Request Body

Response

返回消息由返回狀態行,HTTP頭和消息體三部分組成。

  • HTTP Status Code

    HTTP/1.1 204 No Content

  • 特有Response Header

    無,請參考公共返回頭

  • Response Body

Special Error

本操作無特有的錯誤,主要是權限驗證類和參數設置類錯誤,詳見錯誤響應碼。

請求示例:

  1. DELETE /$queueName HTTP/1.1
  2. Host: $AccountId.mqs-cn-hangzhou.aliyuncs.com
  3. Date: Wed, 08 Mar 2012 12:00:00 GMT
  4. x-mqs-version: 2014-07-08
  5. Authorization: MQS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=

返回示例:

  1. HTTP/1.1 204 NoContent
  2. x-mqs-request-id: 512B2A634403E52B1956133E
  3. x-mqs-version: 2015-06-06

ListQueue

描述

此接口用於列出AccountId下的消息隊列列表,可分頁獲取數據。返回結果中隻包含QueueURL屬性,如需進一步獲取消息隊列的屬性可以通過GetQueueAttributes接口(詳見本文檔GetQueueAttributes接口)獲取。如果隻是要獲取特定的消息隊列列表,在調用此接口時指定x-mqs-prefix參數,返回對消息隊列名稱的前綴匹配結果。

Tip:

如果本次請求結果返回的消息隊列總數超過本次請求的x-mqs-ret-number參數值,返回的XML結果中包含的NextMarker表示下一頁開始位置,在下一次請求時將該值賦予x-mqs-marker參數以返回下一頁的結果。

Request

Request的構造主要由以下幾個部分組成:

  • 請求行

    GET / HTTP/1.1

  • 特有Request Header

參數名稱 說明 選項
x-mqs-marker 請求下一個分頁的開始位置,一般從上次分頁結果返回的NextMarker獲取。 Optional
x-mqs-ret-number 單次請求結果的最大返回個數,可以取1-1000範圍內的整數值,默認值為1000。 Optional
x-mqs-prefix 按照該前綴開頭的queueName進行查找。 Optional

其它Request Header請參考公共請求頭

  • Request Body

Response

返回消息由返回狀態行,HTTP頭和消息體三部分組成。

  • HTTP Status Code

    HTTP/1.1 200 OK

  • 特有Response Header

    無,請參考公共返回頭

  • Response Body

    返回XML形式的結果,頂層Queues元素下包含多個Queue元素, Queue元素中包含QueueURL元素,QueueURL表示創建的Quque的可訪問URL地址。如果返回結果超過x-mqs-ret-number的參數值,包含NextMarker元素表示下個分頁的起始位置。

Special Error

本操作無特有的錯誤,主要是權限驗證類和參數設置類錯誤,詳見MQS錯誤響應碼。

請求示例:

  1. GET / HTTP/1.1
  2. x-mqs-marker: xxxx
  3. x-mqs-ret-number:2
  4. Host: $AccountId.mqs-cn-hangzhou.aliyuncs.com
  5. Date: Wed, 08 Mar 2012 12:00:00 GMT
  6. x-mqs-version: 2014-07-08
  7. Authorization: MQS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=

返回示例:

  1. HTTP/1.1 200OK
  2. x-mqs-request-id:512B2A634403E52B1956133E
  3. x-mqs-version: 2015-06-06
  4. <?xml version="1.0" encoding=”UTF-8” ?>
  5. <Queues xmlns=”https://mqs.aliyuncs.com/doc/v1/”>
  6. <Queue>
  7. < QueueURL>
  8. https:// $AccountId.mqs-cn-hangzhou.aliyuncs.com/queueName
  9. </ QueueURL>
  10. </Queue>
  11. <Queue>
  12. < QueueURL>
  13. https:// $AccountId.mqs-cn-hangzhou.aliyuncs.com/queueName1
  14. </ QueueURL>
  15. </Queue>
  16. <NextMarker> Base64 Encoded Result </NextMarker>
  17. </Queues>

最後更新:2016-11-23 17:16:04

  上一篇:go 錯誤碼__錯誤響應_API使用手冊_消息服務-阿裏雲
  下一篇:go 廣播拉取消息模型__最佳實踐_消息服務-阿裏雲