package com.thenetcircle.comsumerdispatcher.util;
import java.io.IOException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.rabbitmq.client.AMQP.Queue.PurgeOk;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.thenetcircle.comsumerdispatcher.job.JobExecutor;
public class QueueUtil {
private static Log _logger = LogFactory.getLog(QueueUtil.class);
public static boolean purgeQueue(JobExecutor je) {
ConnectionFactory factory = new ConnectionFactory();
factory.setUsername(je.getFetcherQConf().getUserName());
factory.setPassword(je.getFetcherQConf().getPassword());
factory.setVirtualHost(je.getFetcherQConf().getVhost());
factory.setHost(je.getFetcherQConf().getHost());
factory.setPort(je.getFetcherQConf().getPort());
Connection conn = null;
Channel channel = null;
try {
conn = factory.newConnection();
channel = conn.createChannel();
PurgeOk ok = channel.queuePurge(je.getQueue());
_logger.info("purged queue: " +je.getQueue() + " result: " + ok.toString() + " on " + je.getFetcherQConf().getHost() + "," + je.getFetcherQConf().getVhost());
return true;
} catch (IOException e) {
_logger.error(e, e);
} finally {
try {
if (channel != null) channel.close();
} catch (IOException e) {
_logger.error(e, e);
}
try {
if (conn!= null) conn.close();
} catch (IOException e) {
_logger.error(e, e);
}
}
return false;
}
}