キューから複数のメッセージを削除します。
| 名前 | 値 |
| API | BatchDeleteMessage |
| アクション | mns:BatchDeleteMessage |
| リソース | acs:mns:$region:$accountid:/queues/$queueName/messages |
説明
この操作を呼び出して、キューから複数のメッセージを削除できます。一度に最大 16 件のメッセージを削除できます。削除する各メッセージの受信ハンドルをリクエストに含める必要があります。
効率を向上させるために、BatchReceiveMessage 操作と BatchDeleteMessage 操作を呼び出して、複数のメッセージを一度に受信および削除できます。複数のメッセージを削除するために使用されるリクエストには複数のサブリクエストが含まれており、一部のサブリクエストは失敗する可能性があります。すべてのサブリクエストが成功した場合にのみ、HTTP ステータスコード 204 が返されます。一部のサブリクエストが失敗した場合は、各レスポンスのエラーメッセージを確認する必要があります。
リクエスト
リクエストは次の部分で構成されます。
- リクエスト行
DELETE /queues/$queueName/messages HTTP/1.1 - 操作固有のリクエストヘッダー
なし。
- リクエストボディ
リクエストボディは XML 形式です。削除する各メッセージの受信ハンドルをリクエストに含める必要があります。
レスポンス
レスポンスは次の部分で構成されます。
- HTTP ステータスコード
HTTP/1.1 204 NoContent - 操作固有のレスポンスヘッダー
なし。
- レスポンスボディ
なし。
例
リクエストの例
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 ステータスコード |
| QueueNotExist | 指定したキュー名は存在しません。 | 404 |
| InvalidArgument | 要素の値は Low ~ High 秒/バイトの範囲内である必要があります。 | 400 |
| ReceiptHandleError | 指定した受信ハンドルは無効です。 | 400 |