赞
踩
工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进程将弹出任务并最终执行作业。当有多个工作线程时,这些工作线程将一起处理这些任务。
将启动两个工作线程,一个消息发送线程;
public class RabbitMqUtils { // 获取一个连接的channel public static Channel getChannel() throws Exception{ // 创建一个连接工厂 ConnectionFactory factory = new ConnectionFactory(); // 工厂ip factory.setHost("192.168.207.130"); // 用户名 factory.setUsername("admin"); // 密码 factory.setPassword("admin"); // 创建连接 Connection connection = factory.newConnection(); // 获取信道 Channel channel = connection.createChannel(); return channel; } }
/** * @author smartaotao * @version 1.0.0 * @Description 工作线程(相当于消费者) * @createTime 2023-02-16 23:05:00 */ public class WorkerQueue01 { // 队列名称 public static final String QUEUE_NAME = "hello"; public static void main(String[] args) throws Exception{ Channel channel = RabbitMqUtils.getChannel(); // 声明 接收消息 DeliverCallback deliverCallback = (consumerTag, message) -> { System.out.println("接收到的消息: " + new String(message.getBody())); }; CancelCallback cancelCallback = consumerTag -> { System.out.println(consumerTag + "消费消息被中断"); }; channel.basicConsume(QUEUE_NAME, true, deliverCallback, cancelCallback); } }
/**
* @author smartaotao
* @version 1.0.0
* @Description 生产者,发送大量消息
* @cre
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。