> 家居
轮训时间什么意思(轮讲轮训)
导语:每日学习~RabbitMQ之轮训分发消息
什么是工作队列(Work Queues)用来将耗时的任务分发给多个消费者,后台有多个工作线程时,会一起处理消息;
轮训分发消息(1)启动两个工作线程
public class Worker01 { private static final String QUEUE_NAME = &34;; public static void main(String[] args) throws Exception { Channel channel = RabbitMqUtils.getChannel(); DeliverCallback deliverCallback = (consumerTag, delivery) -> { String receivedMessage = new String(delivery.getBody()); System.out.println(&34; + receivedMessage); }; CancelCallback cancelCallback = (consumerTag) -> { System.out.println(consumerTag + &34;); }; System.out.println(&34;); channel.basicConsume(QUEUE_NAME, true, deliverCallback, cancelCallback); }}
启动多个工作线程
(2)生产者
public class Task01 { private static final String QUEUE_NAME = &34;; public static void main(String[] args) throws Exception { try (Channel channel = RabbitMqUtils.getChannel();) { channel.queueDeclare(QUEUE_NAME, false, false, false, null); //从控制台当中接受信息 Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { String message = scanner.next(); channel.basicPublish(&34;, QUEUE_NAME, null, message.getBytes()); System.out.println(&34; + message); } } }}
(3)运行
通过程序执行发现生产者总共发送 4 个消息,消费者 1 和消费者 2 分别分得两个消息,并且是按照有序的一个接收一次消息;
本文内容由小楠整理编辑!