使用RabbitMQ,业务需求,想要知道队列中还有多少待消费待数据。

方式一:

@Value("${spring.rabbitmq.host}")
private String host; @Value("${spring.rabbitmq.port}")
private Integer port; @Value("${spring.rabbitmq.username}")
private String username; @Value("${spring.rabbitmq.password}")
private String password; ConnectionFactory factory = new ConnectionFactory();
//设置ip,port,用户名和秘密
factory.setHost(host);
factory.setPort(port);
factory.setUsername(username);
factory.setPassword(password); //创建链接
Connection connection = factory.newConnection(); //创建信道
Channel channel = connection.createChannel(); //创建一个type=direct 持久化的 非自动删除的交换器
channel.exchangeDeclare(EXCHANGE_NAME, "direct", true, false, null);
String []queues = queueNames.split(",");
for(String queue : queues){
DeclareOk declareOk = channel.queueDeclarePassive(queue);
//获取队列中的消息个数
int num = declareOk.getMessageCount(); }

方式二:

spring配置文件:

<!-- 连接配置 -->
<rabbit:connection-factory id="rabbitConnectionFactory" host="#{app['mq.broker.host']}" port="#{app['mq.broker.port']}" username="#{app['mq.broker.username']}" password="#{app['mq.broker.password']}" virtual-host="/" publisher-confirms="true"/>
<!-- mq模板 -->
<rabbit:template id="rabbitTemplate" connectionfactory="rabbitConnectionFactory" message-converter="jsonMessageConverter"/>

java代码:

@Autowired
private RabbitTemplate rabbitTemplate; ConnectionFactory connectionFactory = rabbitTemplate.getConnectionFactory();
// 创建连接
Connection connection = connectionFactory.createConnection();
// 创建通道
Channel channel = connection.createChannel(false);
// 设置消息交换机
channel.exchangeDeclare("amp.topic", "direct", true, false, null);
DeclareOk declareOk = channel.queueDeclarePassive(LETTER_CLASS_QUEUE);
//获取队列中的消息个数
int queueCount = declareOk.getMessageCount();
result.put("queueCount", String.valueOf(queueCount));
// 关闭通道和连接
channel.close();
connection.close();

最新文章

  1. 【流量劫持】SSLStrip 的未来 —— HTTPS 前端劫持
  2. 在centos 服务器上安装phalcon框架 undefined symbol: php_pdo_get_dbh_ce
  3. python set
  4. 纯html的table打印注意事项
  5. Zabbix自带模板监控MySQL
  6. Nginx实现内参:为什么架构很重要?
  7. 提供给开发者 10 款最好的 Python IDE
  8. MSP430开学的序章
  9. Ibatis 返回datatable数据类型案例
  10. IOS任务管理之GCD使用
  11. es6函数的rest参数和拓展运算符(...)的解析
  12. myeclipse 2014 customize_Perspective 失效解决方法-有效
  13. VSCode python 遇到的问题:vscode can&#39;t open file &#39;&lt;unprintable file name&gt;&#39;: [Errno 2] No such file or directory
  14. php 将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序
  15. 【进阶1-2期】JavaScript深入之执行上下文栈和变量对象(转)
  16. dockerd启动配置_修改IP和systemd管理
  17. 把去世的亲友做成聊天机器人,就能让生者慰藉、死者安息吗? - 看了 寻梦历险记,我的回答是 :是的,他/她永远活在我们心里 www.iremember.com.cn
  18. 【亲测】在网页上查找接口,Network--XHR,出来的每个Name都是后台的一个接口
  19. .NET零基础入门06:面向对象入门
  20. qperf测量网络带宽和延迟

热门文章

  1. ebs oracle YTD期间费用
  2. 对vue-cli各个目录的理解 和 在 vue 中使用json-server
  3. Resolving RMAN-06023 or RMAN-06025 (Doc ID 2038119.1)
  4. [配置]VUE中通过process.env判断开发,测试和生产环境,并分环境配置不同的URL HOST
  5. 16.输入密码查看 flag
  6. Leetcode 153. 寻找旋转排序数组中的最小值
  7. linux 判断文件夹或文件是否存在
  8. ubuntu 18.04 安装mysql 遇到语言格式不兼容性问题解决
  9. C语言程序设计100例之(12):Eratosthenes筛法求质数
  10. 不为人知的网络编程(九):理论联系实际,全方位深入理解DNS