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();
}
}
}
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();
}
}
}
相关文章推荐
- RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)
- 消费RabbitMQ时的注意事项,如何禁止大量的消息涌到Consumer
- rabbitmq之consumer学习
- 消费RabbitMQ时的注意事项,如何禁止大量的消息涌到Consumer
- RabbitMQ Queue分发多个Consumer
- RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)
- rabbitmq 集群 ha负载 Consumer raised exception, processing can restart if the connection factory
- RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)
- RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)
- Java与RabbitMQ(四)Rabbirmq JAVA编程之工作队列 Work Queues
- RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)
- RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)(转)
- RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)
- 解决RabbitMQ队列超长QueueingConsumer导致JVM内存溢出的问题
- RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)
- RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)
- 消费RabbitMQ时的注意事项,如何禁止大量的消息涌到Consumer
- rabbitmq性能优化之Consumer utilisation
- 005,使用Java客户端连接RabbitMQ,构造我们的第一个Publish和Consumer应用
- Rabbitmq-Java-Client重连和consumer恢复机制