如何一次从 SQS 队列中删除所有消息 Java
How to delete all messages from SQS Queue at once Java
根据 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));
但是,假设我有超过 20 条左右的消息,我真的必须对每条消息都进行处理吗?或者有没有办法批量删除?
感谢您的任何见解。
只要看看 API 做类似的事情 DeleteMessageBatchRequest 似乎就可以了。
如果您查看 SDK documentation,您会看到一个 deleteMessageBatch
方法,它获取消息列表。
如果你想删除所有不需要批量删除的消息,你应该像这样清除队列:
var request = new Amazon.SQS.Model.PurgeQueueRequest
{
QueueUrl = "your queue url"
};
_sqsClient.PurgeQueue(request);
清除队列会删除队列中已有的所有消息
根据 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));
但是,假设我有超过 20 条左右的消息,我真的必须对每条消息都进行处理吗?或者有没有办法批量删除?
感谢您的任何见解。
只要看看 API 做类似的事情 DeleteMessageBatchRequest 似乎就可以了。
如果您查看 SDK documentation,您会看到一个 deleteMessageBatch
方法,它获取消息列表。
如果你想删除所有不需要批量删除的消息,你应该像这样清除队列:
var request = new Amazon.SQS.Model.PurgeQueueRequest
{
QueueUrl = "your queue url"
};
_sqsClient.PurgeQueue(request);
清除队列会删除队列中已有的所有消息