本文整理匯總了Java中com.rabbitmq.client.Channel.abort方法的典型用法代碼示例。如果您正苦於以下問題:Java Channel.abort方法的具體用法?Java Channel.abort怎麽用?Java Channel.abort使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類com.rabbitmq.client.Channel
的用法示例。
在下文中一共展示了Channel.abort方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: stop
import com.rabbitmq.client.Channel; //導入方法依賴的package包/類
@Override
public synchronized boolean stop() {
if (s_connection.isOpen()) {
for (final String subscriberId : s_subscribers.keySet()) {
final Ternary<String, Channel, EventSubscriber> subscriberDetails = s_subscribers.get(subscriberId);
final Channel channel = subscriberDetails.second();
try {
channel.queueDelete(subscriberId);
channel.abort();
} catch (final IOException ioe) {
s_logger.warn("Failed to delete queue: " + subscriberId + " on AMQP server due to " + ioe.getMessage());
}
}
}
closeConnection();
return true;
}
示例2: main
import com.rabbitmq.client.Channel; //導入方法依賴的package包/類
/**
* @param args
* @throws IOException
* @throws TimeoutException
* @date 2017年7月11日 下午5:55:38
* @writer junehappylove
*/
public static void main(String[] args) throws IOException, TimeoutException {
final ConnectionFactory factory = new ConnectionFactory();
factory.setHost(host);
factory.setUsername(username);
factory.setPassword(password);
factory.setPort(port);
factory.setVirtualHost(virtualHost);
Connection connection = factory.newConnection();
final Channel channel = connection.createChannel();
channel.queueDeclare(TASK_QUEUE_NAME, true, false, false, null);
System.out.println("Worker1 Waiting for messages");
// 每次從隊列獲取的數量
//channel.basicQos(1);保證一次隻分發一個
channel.basicQos(1);
final Consumer consumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,
byte[] body) throws IOException {
String message = new String(body, "UTF-8");
System.out.println("Worker1 Received '" + message + "'");
try {
//throw new Exception();
doWork(message);
} catch (Exception e) {
channel.abort();
} finally {
System.out.println("Worker1 Done");
channel.basicAck(envelope.getDeliveryTag(), false);
}
}
};
//autoAck是否自動回複,
//如果為true的話,每次生產者隻要發送信息就會從內存中刪除,
//那麽如果消費者程序異常退出,那麽就無法獲取數據,
//我們當然是不希望出現這樣的情況,所以才去手動回複,
//每當消費者收到並處理信息然後在通知生成者。
//最後從隊列中刪除這條信息。
//如果消費者異常退出,如果還有其他消費者,
//那麽就會把隊列中的消息發送給其他消費者,
//如果沒有,等消費者啟動時候再次發送。
boolean autoAck = false;
// 消息消費完成確認
channel.basicConsume(TASK_QUEUE_NAME, autoAck, consumer);
}
示例3: main
import com.rabbitmq.client.Channel; //導入方法依賴的package包/類
/**
* @param args
* @throws IOException
* @throws TimeoutException
* @date 2017年7月11日 下午5:55:38
* @writer junehappylove
*/
public static void main(String[] args) throws IOException, TimeoutException {
final ConnectionFactory factory = new ConnectionFactory();
factory.setHost(host);
factory.setUsername(username);
factory.setPassword(password);
factory.setPort(port);
factory.setVirtualHost(virtualHost);
Connection connection = factory.newConnection();
final Channel channel = connection.createChannel();
channel.queueDeclare(TASK_QUEUE_NAME, true, false, false, null);
System.out.println("Worker2 Waiting for messages");
// 每次從隊列獲取的數量
//channel.basicQos(1);保證一次隻分發一個
channel.basicQos(1);
final Consumer consumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,
byte[] body) throws IOException {
String message = new String(body, "UTF-8");
System.out.println("Worker2 Received '" + message + "'");
try {
//throw new Exception();
doWork(message);
} catch (Exception e) {
channel.abort();
} finally {
System.out.println("Worker2 Done");
channel.basicAck(envelope.getDeliveryTag(), false);
}
}
};
//autoAck是否自動回複,
//如果為true的話,每次生產者隻要發送信息就會從內存中刪除,
//那麽如果消費者程序異常退出,那麽就無法獲取數據,
//我們當然是不希望出現這樣的情況,所以才去手動回複,
//每當消費者收到並處理信息然後在通知生成者。
//最後從隊列中刪除這條信息。
//如果消費者異常退出,如果還有其他消費者,
//那麽就會把隊列中的消息發送給其他消費者,
//如果沒有,等消費者啟動時候再次發送。
boolean autoAck = false;
// 消息消費完成確認
channel.basicConsume(TASK_QUEUE_NAME, autoAck, consumer);
}