Browse Source

测试接口数据解析

lcl 1 năm trước cách đây
mục cha
commit
6153e5fae9
3 tập tin đã thay đổi với 73 bổ sung9 xóa
  1. 27 1
      AppStart/RabbitMQClient.cs
  2. 35 0
      AppStart/Service/ApiDataFromJavaService.cs
  3. 11 8
      Startup.cs

+ 27 - 1
AppStart/RabbitMQClient.cs

@@ -63,10 +63,12 @@ namespace MySystem
             // channel.BasicPublish("", QueueName, null, Encoding.Default.GetBytes(content));
             // channel.Dispose();
             _channel_send.BasicPublish("", QueueName, null, Encoding.Default.GetBytes(content));
+            function.WriteLog(DateTime.Now.ToString() + "\n" + QueueName + "\n" + content + "\n\n\n", "SendMsg2");
         }
         public void SendMsg3(string content, string QueueName)
         {
             _channel_kxs_send.BasicPublish("", QueueName, null, Encoding.Default.GetBytes(content));
+            function.WriteLog(DateTime.Now.ToString() + "\n" + QueueName + "\n" + content + "\n\n\n", "SendMsg3");
         }
         #endregion
 
@@ -220,7 +222,31 @@ namespace MySystem
             {
                 string MsgContent = Encoding.Default.GetString(e.Body.ToArray());
                 function.WriteLog(MsgContent, "接收mq数据队列");
-                if(SycnSpBindService.Instance.SimDo(MsgContent));
+                if(SycnSpBindService.Instance.SimDo(MsgContent))
+                {
+                    channel.BasicAck(e.DeliveryTag, true); //收到回复后,RabbitMQ会直接在队列中删除这条消息
+                }
+            };
+            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());
+                function.WriteLog(MsgContent, "接收mq接口数据队列");
+                if(ApiDataFromJavaService.Instance.ApiDataDo(MsgContent))
                 {
                     channel.BasicAck(e.DeliveryTag, true); //收到回复后,RabbitMQ会直接在队列中删除这条消息
                 }

+ 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;
+            }
+        }
+    }
+}

+ 11 - 8
Startup.cs

@@ -134,14 +134,17 @@ namespace MySystem
             });
 
             //必须打开的
-            RabbitMQClient.Instance.StartReceive("QUEUE_GD_ACT_DIVISION");
-            RabbitMQClient.Instance.CreateConn2("QUEUE_LKB_TRADE_DIVISION");
-            RabbitMQClient.Instance.CreateConn3("QUEUE_KXS_ACT_DIVISION");
-            MpOrderService.Instance.Start();
-            MpMerchantActService.Instance.Start();
-            KxsOrderService.Instance.Start();
-            KxsActService.Instance.Start();
-            KxsActService.Instance.StartMp();
+            // RabbitMQClient.Instance.StartReceive("QUEUE_GD_ACT_DIVISION");
+            // RabbitMQClient.Instance.CreateConn2("QUEUE_LKB_TRADE_DIVISION");
+            // RabbitMQClient.Instance.CreateConn3("QUEUE_KXS_ACT_DIVISION");
+            // MpOrderService.Instance.Start();
+            // MpMerchantActService.Instance.Start();
+            // KxsOrderService.Instance.Start();
+            // KxsActService.Instance.Start();
+            // KxsActService.Instance.StartMp();
+
+            
+            RabbitMQClient.Instance.StartReceiveApi("QUEUE_DTS_URL_DATA_DIVISION");
         }
     }
 }