博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rabbitmq 持续获取_rabbitMq创建和获取消息
阅读量:4964 次
发布时间:2019-06-12

本文共 1805 字,大约阅读时间需要 6 分钟。

importnet.sf.json.JSONObject;importorg.apache.commons.logging.Log;importorg.apache.commons.logging.LogFactory;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.context.ApplicationListener;importorg.springframework.context.event.ContextRefreshedEvent;importcom.rabbitmq.client.Channel;importcom.rabbitmq.client.QueueingConsumer;/*** 启动预加载信息类

*@authorAdministrator*/

public class ContextLoaderSpringListener implements ApplicationListener{private static Log logger = LogFactory.getLog(ContextLoaderSpringListener.class);

@AutowiredprivateShipmentCheckService shipmentCheckService;//当spring容器初始化完成后就会执行该方法。

public voidonApplicationEvent(ContextRefreshedEvent event) {

logger.debug("ConfigLoadListener init......");try{//创建一个频道

Channel channel =QueueUtil.getConnection().createChannel();boolean durable = true;//声明队列,主要为了防止消息接收者先运行此程序,队列还不存在时创建队列。

channel.queueDeclare(QueueUtil.getQueueName(), durable, false, false, null);//创建队列消费者

QueueingConsumer consumer = newQueueingConsumer(channel);//指定消费队列//TODO:并发测试MQ,ack?

channel.basicConsume(QueueUtil.getQueueName(), false/*打开应答机制*/, consumer);while (true) {//nextDelivery是一个阻塞方法(内部实现其实是阻塞队列的take方法)

QueueingConsumer.Delivery delivery =consumer.nextDelivery();byte[] body =delivery.getBody();try{

String str=new String(body,"UTF-8");

JSONObject j=JSONObject.fromObject(str);

String shipmentId= j.getString("shipmentId");

String vehicleId= j.getString("vehicleId");int planLineType = j.getInt("planLineType");

shipmentCheckService.check(shipmentId,vehicleId,planLineType);

}catch(RuntimeException e) {

logger.error("货运单数据校验出现异常:", e);

logger.error("Source package:"+CommUtil.getEncodeData(body));

}

channel.basicAck(delivery.getEnvelope().getDeliveryTag(),false);

}

}catch(Exception e) {

logger.error("货运单存储器出现异常:", e);

}

}

}

转载地址:http://pgqhp.baihongyu.com/

你可能感兴趣的文章
iOS | Runtime应用
查看>>
Codeforces 898F 字符串hash
查看>>
JVM常用工具使用
查看>>
项目实战房租网 mongdb
查看>>
AngularJS 特性—SinglePage、template、Controller
查看>>
Java向上保留两位小数
查看>>
在Windows下配置多用户远程桌面连接
查看>>
hdu1083二分图匹配模板题
查看>>
我的未来路
查看>>
java—泛型
查看>>
luogu解题报告:P2178[NOI2015]品酒大会
查看>>
【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验九:PS/2模块③ — 键盘与多组合键...
查看>>
windows2008 虚拟机64位的操作系统安装32位的应用程序
查看>>
二进制I/O
查看>>
python中operator.itemgetter函数
查看>>
面向对象的设计原则
查看>>
spiral-matrix-ii &i 生成顺时针序列
查看>>
文件下载及header方法介绍
查看>>
系统相册的调用,和相机的调用
查看>>
Delphi 实现数字转大写
查看>>