.Net RabbitMQ

参考

.NET中大型项目开发必备(12)--使用MQ消息队列 - DeveloperSharp - 博客园 (cnblogs.com)

环境搭建

下载依赖包

DeveloperSharp.RabbitMQ

image.png

安装rabbitmq

参考: Docker安装Rabbitmq超详细教程docker rabbitmqHi梅的博客-CSDN博客

docker pull rabbitmq

image.png

docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5673:5672 rabbitmq

image.png

image.png

登录:RabbitMQ Management,账号密码都是guest

image.png

image.png

配置mq连接信息

配置连接信息:为appsetting.json添加内容

"DeveloperSharp.RabbitMQ": [ { "HostName": "127.0.0.1", "UserName": "guest", "Password": "guest", "Port": 5673 } ]

image.png

基础方法

  • 测试逻辑:
    • 先向RabbitMQ服务器上名为“aa”的队列发送了5个消息,
    • 然后从RabbitMQ服务器上的“aa”队列中获取,并打印出第1个消息,
    • 最后再连续从RabbitMQ服务器上的“aa”队列中获取剩余4个消息,并把它们写入名为fj.txt的文件。

Program.cs中添加:

``` //发送5个消息(使用SendMessage) using DeveloperSharp.RabbitMQ;

RabbitMQHelper.SendMessage("aa", "世界1,你好!"); RabbitMQHelper.SendMessage("aa", "世界2,你好!"); RabbitMQHelper.SendMessage("aa", "世界3,你好!"); RabbitMQHelper.SendMessage("aa", "世界4,你好!"); RabbitMQHelper.SendMessage("aa", "世界5,你好!");

//获取1个消息(使用GetMessage) string OneMessage = RabbitMQHelper.GetMessage("aa").Message; Console.WriteLine(OneMessage);

//向fj.txt这个文本文件中写入4个消息(使用UseMessage) RabbitMQHelper.UseMessage("aa", t => { System.IO.File.AppendAllText("D:/fj.txt", t.Message); return true; });

```

image.png

运行程序后消息成功被加载和读取

image.png

死信队列

  • 测试逻辑:
    • 首先,在RabbitMQ服务器上定义一个名为"bbq"、且其中存放的消息会在60秒后过期失效的队列。
    • 然后,在RabbitMQ服务器上定义一个与"bbq"队列对应的死信队列。并连续从该死信队列中获取消息并把它们写入名为BB.txt的文件。
    • 最后,向RabbitMQ服务器上的"bbq"队列发送3个消息。

``` //定义bbq队列,其中存放的消息会在10秒后过期 using DeveloperSharp.RabbitMQ;

var myQ = RabbitMQHelper.SetQueue("bbq", 10000);

//定义与bbq队列对应的死信队列 var expQ = RabbitMQHelper.GetQueue("bbq"); //向BB.txt这个文本文件中连续写入死信队列中的消息 expQ.UseMessage(t => { System.IO.File.AppendAllText("D:/BB.txt", t.Message); return true; });

//向bbq队列发送3个消息 myQ.SendMessage("jinA"); myQ.SendMessage("jinB"); myQ.SendMessage("jinC"); ``` 由于10秒内没有程序取出队列中的消息,将会交给死信队列处理

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值