搜索
写经验 领红包
 > 家居

轮训时间什么意思(轮讲轮训)

导语:每日学习~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 分别分得两个消息,并且是按照有序的一个接收一次消息;

本文内容由小楠整理编辑!