如何消费一条消息?

如何消费一条消息?,第1张

如何消费一条消息

您必须声明basicQos设置,才能一次从ACK到NACK状态获取一条消息,并禁用自动ACK以便显式给出确认。

ConnectionFactory factory = new ConnectionFactory();    factory.setHost("localhost");    Connection connection = factory.newConnection();    Channel channel = connection.createChannel();    channel.basicQos(1);    channel.queueDeclare(QUEUE_NAME, true, false, false, null);    System.out.println("[*] waiting for messages. To exit press CTRL+C");    QueueingConsumer consumer = new QueueingConsumer(channel);    channel.basicConsume(QUEUE_NAME, consumer);    while(true) {        QueueingConsumer.Delivery delivery = consumer.nextDelivery();        int n = channel.queueDeclarePassive(QUEUE_NAME).getMessageCount();        System.out.println(n);        if(delivery != null) { byte[] bs = delivery.getBody(); System.out.println(new String(bs)); //String message= new String(delivery.getBody()); channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false); //System.out.println("[x] Received '"+message);        }    }

希望能帮助到你!



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5616309.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存