林豪 左 3 years ago
parent
commit
d9f5c39f67
1 changed files with 31 additions and 29 deletions
  1. 31 29
      Projects/永冠OPP/WCS.Service/ProtocolProxy.cs

+ 31 - 29
Projects/永冠OPP/WCS.Service/ProtocolProxy.cs

@@ -11,6 +11,7 @@ using System.Diagnostics;
 using System.Linq;
 using System.Linq.Dynamic.Core;
 using System.Reflection;
+using System.Threading.Tasks;
 using WCS.Core;
 using WCS.Entity;
 using WCS.Entity.Protocol;
@@ -95,7 +96,7 @@ namespace WCS.Service
         //static ConcurrentQueue<PackInfo> Packs = new ConcurrentQueue<PackInfo>();
         private static Dictionary<string, Playerback> Clients = new Dictionary<string, Playerback>();
 
-        //private static RedisClient Redis;
+        private static RedisClient Redis;
         public static RedisClient YG150Redis;
         public static RedisClient YGWMS150Redis;
         public static RedisClient YGWCS150Redis;
@@ -103,18 +104,18 @@ namespace WCS.Service
         static ProtocolProxy()
         {
             MessagePackSerializer.DefaultOptions = StandardResolver.Options.WithCompression(MessagePackCompression.Lz4Block);
-            ////Redis = new RedisClient("192.168.249.120,password=123456,database=11");
-            //Redis = new RedisClient("212.64.66.35,database=10");
-            //Redis.Serialize = obj =>
-            //{
-            //    var bytes = MessagePackSerializer.Serialize(obj);
-            //    return bytes;
-            //};
-            //Redis.DeserializeRaw = (bytes, type) =>
-            //{
-            //    var obj = MessagePackSerializer.Deserialize(type, bytes);
-            //    return obj;
-            //};
+            //Redis = new RedisClient("192.168.249.120,password=123456,database=11");
+            Redis = new RedisClient("212.64.66.35,database=10");
+            Redis.Serialize = obj =>
+            {
+                var bytes = MessagePackSerializer.Serialize(obj);
+                return bytes;
+            };
+            Redis.DeserializeRaw = (bytes, type) =>
+            {
+                var obj = MessagePackSerializer.Deserialize(type, bytes);
+                return obj;
+            };
 
             YG150Redis = new RedisClient("192.168.249.150,password=123456,database=1");
             YGWMS150Redis = new RedisClient("192.168.249.150,password=123456,database=0");
@@ -192,14 +193,15 @@ namespace WCS.Service
             {
                 var gs = AllDatas.GroupBy(v => v.Value.GetType());
 
-                //Parallel.ForEach(gs, g =>
-                //{
-                //    var value = g.Select(v => v.Value).ToArray();
-                //    var etype = g.Key;
-                //    var type = typeof(DeviceDataCollection<>).MakeGenericType(etype);
-                //    var coll = Activator.CreateInstance(type, LogicHandler.Frame, value);
-                //    Redis.Set(etype.Name, coll);
-                //});
+                Parallel.ForEach(gs, g =>
+                {
+                    var value = g.Select(v => v.Value).ToArray();
+                    var etype = g.Key;
+                    var type = typeof(DeviceDataCollection<>).MakeGenericType(etype);
+                    var coll = Activator.CreateInstance(type, LogicHandler.Frame, value);
+                    Redis.Set(etype.Name, coll);
+                    YGWCS150Redis.Set(etype.Name, coll);
+                });
                 DeviceDataPack pack = new DeviceDataPack();
                 pack.Frame = LogicHandler.Frame;
                 foreach (var g in gs)
@@ -214,21 +216,21 @@ namespace WCS.Service
 
                 var sw = new Stopwatch();
                 sw.Start();
-                //Redis.Set(nameof(DeviceDataPack), pack);
+                Redis.Set(nameof(DeviceDataPack), pack);
                 YGWCS150Redis.Set(nameof(DeviceDataPack), pack);
                 sw.Stop();
                 Console.ForegroundColor = ConsoleColor.Blue;
                 Console.WriteLine($"Redis耗时{sw.ElapsedMilliseconds}");
                 Console.ResetColor();
 
-                //Redis.RPush("Packs", pack);
+                Redis.RPush("packs", pack);
                 YGWCS150Redis.RPush("Packs", pack);
 
-                //var len = Redis.LLen("Packs");
-                //if (len > 150000)
-                //{
-                //    Redis.LTrim("Packs", 20000, len);
-                //}
+                var len = Redis.LLen("Packs");
+                if (len > 150000)
+                {
+                    Redis.LTrim("Packs", 20000, len);
+                }
 
 
                 var len1 = YGWCS150Redis.LLen("Packs");
@@ -239,7 +241,7 @@ namespace WCS.Service
 
                 foreach (var data in AllDatas)
                 {
-                    // LastInfo[data.Key] = data.Value.Info;
+                    LastInfo[data.Key] = data.Value.Info;
                     data.Value.Info = "";
                     if (data.Value is ProdLineData)
                     {