java - 如何一次从 SQS 队列中删除所有消息 Java

标签 java amazon-web-services amazon-sqs

根据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 条左右的消息,我真的必须对每条消息都进行处理吗?或者有没有办法批量删除?

感谢任何见解。

最佳答案

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

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

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

关于java - 如何一次从 SQS 队列中删除所有消息 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39253144/

相关文章:

amazon-web-services - 下载期间 Amazon S3 链接过期?

amazon-web-services - 在aws上部署asp.net core 1.0网站

laravel - 为什么 Laravel 使用默认队列连接,即使我指定了具有不同连接的队列

amazon-web-services - Lambda 服务抛出错误执行角色无权在 SQS 上调用 receiveMessage

java - Spring Boot - NoClassDefFoundError : ch/qos/logback/classic/Level

java - 将日期列表转换为日期范围字符串

java - JSF 是否缓存两个请求之间每个组件的状态?

node.js - AWS Alexa V2 中的 SSML 支持

python - Celery 与 SQS 代理和死信队列

Java/OS X 狮子 : Setting application name stopped working with JDK1. 7