根据亚马逊文档,从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条消息,我真的必须为每条消息处理这个消息吗?或者有没有办法进行批量删除?
感谢您的任何见解。
答案 0 :(得分:1)
只是看看API做类似的事情DeleteMessageBatchRequest似乎可以解决问题。
答案 1 :(得分:1)
如果您要删除所有不需要批量删除的邮件,您应该像这样清除队列:
var request = new Amazon.SQS.Model.PurgeQueueRequest
{
QueueUrl = "your queue url"
};
_sqsClient.PurgeQueue(request);
清除队列会删除队列中已有的所有消息
答案 2 :(得分:0)
如果查看SDK documentation,您会看到一个deleteMessageBatch
方法,其中包含一系列消息。