.net Framework 4.5 MVC4 + RabbitMQ

1.首先在本地安装好RabbitMQ环境

2.因为不是.net core 所以要下载对应的dll版本 地址 https://www.nuget.org/packages/RabbitMQ.Client/3.4.3

 3.在项目进行引用

 

 

 4.编写 发布  订阅 代码 这里的UserName 用通用账号登录 guest

 1     public class RabbitMQCommon
 2     {
 3         /// <summary>
 4         /// 发送
 5         /// </summary>
 6         /// <param name="message"></param>
 7         public static void MQSend(string message)
 8         {
 9             try
10             {
11                 ConnectionFactory factory = new ConnectionFactory();
12                 factory.HostName = "localhost";
13                 factory.UserName = "guest";
14                 factory.Password = "guest";
15 
16                 using (var connection = factory.CreateConnection())
17                 {
18                     using (var channel = connection.CreateModel())
19                     {
20 
21                         bool durable = true;
22                         channel.QueueDeclare("task_queue", durable, false, false, null);
23 
24                         var properties = channel.CreateBasicProperties();
25                         properties.SetPersistent(true);
26 
27                         var body = Encoding.UTF8.GetBytes(message);
28                         channel.BasicPublish("", "task_queue", properties, body);
29                     }
30                 }
31             }
32             catch (Exception ex)
33             {
34                 Log.Instance.Write(ex.ToString(), "MQSend_Err");
35             }
36         }
37         /// <summary>
38         /// 接收
39         /// </summary>
40         public static void MQReceive()
41         {
42             try
43             {
44                 var factory = new ConnectionFactory();
45                 factory.HostName = "localhost";
46                 factory.UserName = "guest";
47                 factory.Password = "guest";
48 
49                 using (var connection = factory.CreateConnection())
50                 {
51                     using (var channel = connection.CreateModel())
52                     {
53                         bool durable = true;
54                         channel.QueueDeclare("task_queue", durable, false, false, null);
55                         channel.BasicQos(0, 1, false);
56 
57                         var consumer = new QueueingBasicConsumer(channel);
58                         channel.BasicConsume("task_queue", false, consumer);
59 
60                         while (true)
61                         {
62                             var ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
63 
64                             var body = ea.Body;
65                             var message = Encoding.UTF8.GetString(body);
66 
67                             int dots = message.Split('.').Length - 1;
68                             Thread.Sleep(dots * 1000);
69 
70 
71                             DAL.Log.Instance.Write(message, "MQReceive");
72 
73                             channel.BasicAck(ea.DeliveryTag, false);
74                         }
75                     }
76                 }
77             }
78             catch (Exception ex)
79             {
80                 Log.Instance.Write(ex.ToString(), "MQReceive_Err");
81             }
82         }
83     }
云在青天水在瓶
原文地址:https://www.cnblogs.com/flms/p/15661729.html