您的位置:首页 > 其它

Rabbitmq RabConsumer2类

2018-01-12 19:26 113 查看
package com.mobile263.ying.Rabbitmq;

import java.io.IOException;

import java.util.concurrent.TimeoutException;

import com.rabbitmq.client.AMQP.BasicProperties;

import com.rabbitmq.client.Consumer;

import com.rabbitmq.client.Envelope;

import com.rabbitmq.client.ShutdownSignalException;

public class RabConsumer2 extends Endpoint implements Runnable, Consumer {

public RabConsumer2(String endpointName) throws IOException, TimeoutException {
super(endpointName);
channel.basicQos(1);

//配置consumer自动确认关闭
channel.basicConsume(endPointName, false, this);

}

public void handleCancelOk(String arg0) {
System.out.println("handleCancelOk");
}

public void handleConsumeOk(String arg0) {
System.out.println("handleConsumeOk");

}

public void handleDelivery(String arg0, Envelope arg1, BasicProperties arg2, byte[] arg3) throws IOException {
String string = new String(arg3);
System.out.println(string);

//手动发送确认,不发送这个,回导致消息一直在转发状态。
channel.basicAck(arg1.getDeliveryTag(), false);  

}

public void handleShutdownSignal(String arg0, ShutdownSignalException arg1) {
System.out.println("handleShutdownSignal");
}

public void run() {
System.out.println("run");
}

public static void main(String[] args) {

RabConsumer2 consumer2 = null;
try {
consumer2 = new RabConsumer2("yingQueue");
} catch (IOException e) {

e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
}
if(null != consumer2) {
Thread thread2 = new Thread(consumer2);
thread2.start();
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: