当前位置: 首页 > ai >正文

MSMQ消息队列》》Rabbit MQ》》安装延迟插件、延迟消息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 把刚才下载好的插件 上传到 linux系统中
# 我是放在 放在 /home/x  目录下的
# 通过docker ps  查看  rabbitmq的容器ID或容器名称
docker cp   宿主文件 rabbitmq容器ID或容器名称:/目录

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

# 进去rabbitmq的容器中   rabbitmq-Container-A是容器名称
docker exec -it rabbitmq-Container-A /bin/bashcd plugins
ls -l | grep delayed
# 同样是在容器内plugins目录下,执行rabbitmq-plugins enable rabbitmq_delayed_message_exchange,启用插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
# 退出容器
# 重启这个容器
docker restart rabbitmq-Container-A 

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System.Text;namespace RabbitMQ_Demo
{internal class Program{static void Main(string[] args){Producer();Console.ReadLine();}static async void Producer(){var factory = new ConnectionFactory{HostName = "172.30.164.66",Port = 5571,UserName = "admin",Password = "admin",VirtualHost="Zen_vhost"};using var connection = await factory.CreateConnectionAsync();using var channel = await connection.CreateChannelAsync();            //声明交换机 Zen-Delayed-DirectDictionary<string,object> args = new Dictionary<string, object>();args.Add("x-delayed-type", "direct");const string exchangeName = "Zen-Delayed-Direct";await channel.ExchangeDeclareAsync(exchangeName, "x-delayed-message", arguments:args );//声明一个队列await channel.QueueDeclareAsync("Qu1",durable:false,exclusive:false,autoDelete:false,arguments:null);await channel.QueueBindAsync("Qu1",exchangeName,routingKey:"delayed_routing_key");for (int i = 0; i < 5; i++){var message = $"[消息{i}] Hello World";                //模拟数据发送SendMess(channel, exchangeName: exchangeName, routingKey: "delayed_routing_key",  body: message);Console.WriteLine($"消息:{message} 已发送 ——supplierID-{i}");}}static async void SendMess(IChannel channel, string exchangeName, string routingKey, string body){var message = Encoding.UTF8.GetBytes(body);//发送延迟消息       var prop = new BasicProperties();prop.Headers = new Dictionary<string, object>() {{ "x-delay", 20000 }};await channel.BasicPublishAsync(exchange: exchangeName,routingKey: routingKey,basicProperties: prop,mandatory:false,body: message);}}
}
http://www.xdnf.cn/news/10280.html

相关文章:

  • 3D-激光SLAM笔记
  • Rollup打包输出产物遇到的一个坑。(分享心得)
  • Redis缓存问题重点详解
  • 57、IdentityServer4概述
  • [创业之路-398]:企业战略管理案例分析-战略意图是使命、愿景可聚焦、可量化、可落地、可实现、具象化的3-5年左右的目标
  • 三步问题 --- 动态规划
  • 二叉搜索树——AVL
  • 小红书 发评论 分析 x-s x-t
  • 在win10/11下Node.js安装配置教程
  • 网络编程1_网络编程引入
  • Centos环境下安装/重装MySQL完整教程
  • [SC]SystemC在CPU/GPU验证中的应用(二)
  • 【数据结构】图的存储(邻接矩阵与邻接表)
  • Spring Data Redis 实战指南
  • Java对象克隆:从浅到深的奥秘
  • 秒杀系统—5.第二版升级优化的技术文档三
  • Brighter 的线程模型:为何专用线程驱动异步消息泵
  • Python(十四)
  • Vue-自定义指令
  • *JavaScript中的Symbol类型:唯一标识符的艺术
  • # STM32F103 PA0到PA4多路ADC采集配置和采集程序
  • SQL进阶之旅 Day 9:高级索引策略
  • sass高阶应用
  • 基于Web的濒危野生动物保护信息管理系统设计(源码+定制+开发)濒危野生动物监测与保护平台开发 面向公众参与的野生动物保护与预警信息系统
  • resubmit v1.2.0 新特性支持类级别防止重复提交
  • 深度学习总结(40)
  • 数据集笔记:SeekWorld
  • 【Java笔记】Spring IoC DI
  • YOLOv8 移动端升级:借助 GhostNetv2 主干网络,实现高效特征提取
  • 【CC协议】知识共享许可协议(Creative Commons Licenses)体系解析