如何一次删除SQS队列中的所有消息Java

Jai*_*bin 4 java amazon-sqs amazon-web-services

根据Amazon文档,从SQS队列中删除单个消息的代码是:

    // Delete a message
System.out.println("Deleting a message.\n");
String messageReceiptHandle = messages.get(0).getReceiptHandle();
sqs.deleteMessage(new DeleteMessageRequest()
    .withQueueUrl(myQueueUrl)
    .withReceiptHandle(messageReceiptHandle));
Run Code Online (Sandbox Code Playgroud)

但是,假设我有超过 20 条左右的消息,我真的必须对每条消息都进行处理吗?或者有没有办法批量删除?

感谢您的任何见解。

Rob*_*rto 6

如果你想删除所有不需要批量删除的消息,你应该像这样清除队列:

var request = new Amazon.SQS.Model.PurgeQueueRequest
{
    QueueUrl = "your queue url"
};
_sqsClient.PurgeQueue(request);
Run Code Online (Sandbox Code Playgroud)

清除队列会删除队列中已有的所有消息