Explorar o código

Merge branch 'test-mqserver' into release-mqserver

lcl hai 1 ano
pai
achega
7aab52d47b
Modificáronse 3 ficheiros con 63 adicións e 1 borrados
  1. 26 0
      AppStart/RabbitMQClient.cs
  2. 35 0
      AppStart/Service/ApiDataFromJavaService.cs
  3. 2 1
      Startup.cs

+ 26 - 0
AppStart/RabbitMQClient.cs

@@ -229,6 +229,32 @@ namespace MySystem
             };
             channel.BasicConsume(QueueName, false, consumer);
         }
+        public void StartReceiveApi(string QueueName)
+        {
+            if (_connection == null)
+            {
+                CreateConn();
+            }
+            else if (!_connection.IsOpen)
+            {
+                CreateConn();
+            }
+            var channel = _connection.CreateModel();
+            channel.QueueBind(QueueName, "kxs_dead_ranch", "DEAD_QUEUE_GD_ACT_DIVISION");
+            EventingBasicConsumer consumer = new EventingBasicConsumer(channel);
+            consumer.Received += (a, e) =>
+            {
+                string MsgContent = Encoding.Default.GetString(e.Body.ToArray());
+                RedisDbconn.Instance.AddList("JavaUrlDataQueue", MsgContent);
+                function.WriteLog(MsgContent, "接收mq接口数据队列");
+                if(ApiDataFromJavaService.Instance.ApiDataDo(MsgContent))
+>>>>>>> test-mqserver
+                {
+                    channel.BasicAck(e.DeliveryTag, true); //收到回复后,RabbitMQ会直接在队列中删除这条消息
+                }
+            };
+            channel.BasicConsume(QueueName, false, consumer);
+        }
         #endregion
 
 

+ 35 - 0
AppStart/Service/ApiDataFromJavaService.cs

@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using MySystem.Models;
+using Library;
+using LitJson;
+using System.Threading;
+
+namespace MySystem
+{
+    public class ApiDataFromJavaService
+    {
+        public readonly static ApiDataFromJavaService Instance = new ApiDataFromJavaService();
+        private ApiDataFromJavaService()
+        { }
+
+        public bool ApiDataDo(string content)
+        {
+            try
+            {
+                WebCMSEntities db = new WebCMSEntities();
+
+                
+                db.SaveChanges();
+                db.Dispose();
+                return true;
+            }
+            catch (Exception ex)
+            {
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "处理Java转发接口数据队列异常");
+                return false;
+            }
+        }
+    }
+}

+ 2 - 1
Startup.cs

@@ -141,7 +141,8 @@ namespace MySystem
             MpMerchantActService.Instance.Start();
             KxsOrderService.Instance.Start();
             KxsActService.Instance.Start();
-            KxsActService.Instance.StartMp();
+            KxsActService.Instance.StartMp();            
+            RabbitMQClient.Instance.StartReceiveApi("QUEUE_DTS_URL_DATA_DIVISION");
         }
     }
 }