當前位置: 首頁>>代碼示例>>Java>>正文


Java Channel.abort方法代碼示例

本文整理匯總了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;
}
 
開發者ID:MissionCriticalCloud,項目名稱:cosmic,代碼行數:19,代碼來源:RabbitMQEventBus.java

示例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);

}
 
開發者ID:pudoj,項目名稱:june.mq,代碼行數:56,代碼來源:Work1.java

示例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);

}
 
開發者ID:pudoj,項目名稱:june.mq,代碼行數:56,代碼來源:Work2.java


注:本文中的com.rabbitmq.client.Channel.abort方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。