Bläddra i källkod

通过MQ队列执行SP原始数据

lcl 4 månader sedan
förälder
incheckning
6126f42294
2 ändrade filer med 18 tillägg och 7 borttagningar
  1. 7 4
      AppStart/Helper/SpDataHelper.cs
  2. 11 3
      AppStart/RabbitMQClient2.cs

+ 7 - 4
AppStart/Helper/SpDataHelper.cs

@@ -80,15 +80,18 @@ public class SpDataHelper
                         pdb = new MySystem.JavaProductModels.WebCMSEntities();
                         conn = true;
                     }
-                    Utils.WriteLog("", "SP原始数据队列日志");
+                    Utils.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(trade), "SP原始数据队列日志");
                     // if(!BrandIds.Contains(trade.ProductType)) SycnSpTradeService.Instance.DoQueueTrade(db, pdb, trade);
                     // if(trade.ProductType == "23") SycnSpTradeWifiService.Instance.DoQueueTrade(db, trade);
                 }
                 else
                 {
-                    db.Dispose();
-                    pdb.Dispose();
-                    conn = false;
+                    if(conn)
+                    {
+                        db.Dispose();
+                        pdb.Dispose();
+                        conn = false;
+                    }
                     Thread.Sleep(5000);
                 }
             }

+ 11 - 3
AppStart/RabbitMQClient2.cs

@@ -25,12 +25,20 @@ namespace MySystem
         { 
             var factory = new ConnectionFactory()
             {
-                HostName = HostName,
                 UserName = UserName,
                 Password = Password,
-                VirtualHost = VirtualHostName
+                AutomaticRecoveryEnabled = true,  //如果connection挂掉是否重新连接
+                TopologyRecoveryEnabled = true,  //连接恢复后,连接的交换机,队列等是否一同恢复
+                VirtualHost = VirtualHostName,
             };
-            _connection = factory.CreateConnection();
+            List<AmqpTcpEndpoint> p = new List<AmqpTcpEndpoint>();
+            string[] HostNames = HostName.Split(',');
+            foreach (string subHostName in HostNames)
+            {
+                string[] subHostNameData = subHostName.Split(':');
+                p.Add(new AmqpTcpEndpoint(subHostNameData[0], int.Parse(subHostNameData[1])));
+            }
+            _connection = factory.CreateConnection(p);
         }
 
         #region 单对单接收