全部產品
Search
文件中心

Simple Message Queue (formerly MNS):BatchDeleteMessage

更新時間:Jun 30, 2024

調用BatchDeleteMessage介面大量刪除隊列中的訊息。

授權資訊

預設僅限阿里雲帳號使用本介面,RAM使用者只有在被授予了相關API操作許可權後方可使用。本介面的授權資訊如下表所示。更多資訊,請參見授權策略和樣本

NameValue
APIBatchDeleteMessage
RAM授權操作mns:BatchDeleteMessage
資源acs:mns:$region:$accountid:/queues/$queueName/messages

使用說明

該介面用於大量刪除隊列中的多條訊息,最多可以刪除16條訊息,每條訊息需要傳入相應的ReceiptHandle。

建議此介面與BatchReceiveMessage介面搭配使用,效率會更高。大量操作的結果可能同時包含成功和失敗的子請求。只有全部子請求都成功時,HTTP狀態代碼才是204。當部分失敗發生時,需檢查響應中每個訊息的錯誤資訊。

請求訊息

請求訊息由請求行、HTTP頭和訊息體三部分組成:

  • 請求行

    DELETE /queues/$queueName/messages HTTP/1.1

  • 特有Request Header

    無。

  • Request Body

    Request Body為XML格式,其中包含多條訊息的ReceiptHandle。

返回訊息

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

  • HTTP Status Code

    HTTP/1.1 204 NoContent

  • 特有Response Header

    無。

  • Response Body

    無。

樣本

請求樣本:

DELETE  /queues/$queueName/messages HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 28 May 2012 22:32:00 GMT
x-mns-version: 2015-06-06
Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXA****

<?xml version="1.0" encoding="UTF-8"?>
<ReceiptHandles xmlns="http://mns.aliyuncs.com/doc/v1/">
    <ReceiptHandle>1-ODU4OTkzNDU5My0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
    <ReceiptHandle>1-ODU4OTkzNDU5NC0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
    <ReceiptHandle>1-ODU4OTkzNDU5NS0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
</ReceiptHandles>            

返回樣本:

  • 正常刪除所有訊息
        HTTP/1.1 204 No Content
        x-mns-request-id:512B2A634403E52B1956****
        x-mns-version: 2015-06-06                  
  • 部分訊息刪除失敗
        HTTP/1.1 404
        Connection:close
        Content-Type=text/xml;charset=utf-8
        Content-Length:500
        x-mns-request-id:512B2A634403E52B1956****
        x-mns-version: 2015-06-06
    
        <?xml version="1.0" encoding="UTF-8"?>
        <Errors xmlns="http://mns.aliyuncs.com/doc/v1/">
        <Error>
            <ErrorCode>MessageNotExist</ErrorCode>
            <ErrorMessage>Message not exist.</ErrorMessage>
            <ReceiptHandle>1-ODU4OTkzNDU5My0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
        </Error>
        <Error>
            <ErrorCode>MessageNotExist</ErrorCode>
            <ErrorMessage>Message not exist.</ErrorMessage>
            <ReceiptHandle>1-ODU4OTkzNDU5NC0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
        </Error>
        </Errors>                    

錯誤碼

錯誤碼錯誤資訊HTTP狀態代碼描述內容
InvalidArgumentThe value of Element should between Low and High seconds/bytes.400參數值非法,請根據提示調整。
ReceiptHandleErrorThe receipt handle you provide is not valid.400請求參數不合法。
QueueNotExistThe queue name you provided is not exist.404隊列不存在,請先建立隊列。
MessageNotExistThe receipt handle you provided has expired.404消費訊息過慢導致訊息重新回到隊列產生新的ReceiptHandle,之前的ReceiptHandle失效。請加快消費速度或者增加隊列的不可見時間。