package com.softwaremill.common.sqs;
import com.amazonaws.AmazonServiceException;
import com.google.common.base.Charsets;
import com.google.common.base.Optional;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* @author Adam Warski (adam at warski dot org)
*/
public class SQSEmptor {
private final String serverName;
private final String accessKeyId;
private final String secretAccessKey;
private final String queueName;
public SQSEmptor(String serverName, String accessKeyId, String secretAccessKey, String queueName) {
this.serverName = serverName;
this.accessKeyId = accessKeyId;
this.secretAccessKey = secretAccessKey;
this.queueName = queueName;
}
public void emptyQueue() throws AmazonServiceException {
Queue queue = new SQS(serverName, accessKeyId, secretAccessKey).getQueueByName(queueName);
Optional<ReceivedMessage> message;
do {
message = queue.receiveSingleMessage();
if (message.isPresent()) {
System.out.println("Deleting message: " + message.get().getMessageId().get() + " (" + message.get().getReceiptHandle().get() + ")");
queue.deleteMessage(message.get());
}
} while (message.isPresent());
System.out.println("Queue emptied");
}
public static void main(String[] args) throws IOException, AmazonServiceException {
BufferedReader rdr = new BufferedReader(new InputStreamReader(System.in, Charsets.UTF_8));
System.out.println("Server name (return for queue.amazonaws.com):");
String serverName = rdr.readLine().trim();
if ("".equals(serverName)) {
serverName = "queue.amazonaws.com";
}
System.out.println("Access key id:");
String accessKeyId = rdr.readLine().trim();
if ("".equals(accessKeyId)) {
return;
}
System.out.println("Secret access key:");
String secretAccessKey = rdr.readLine().trim();
if ("".equals(secretAccessKey)) {
return;
}
while (true) {
System.out.println("Queue name to empty:");
String queueName = rdr.readLine().trim();
if ("".equals(queueName)) {
return;
}
new SQSEmptor(serverName, accessKeyId, secretAccessKey, queueName).emptyQueue();
}
}
}