|  | @@ -63,7 +63,7 @@ namespace WCS.Service
 | 
	
		
			
				|  |  |                      db.Default.Attach(obj);
 | 
	
		
			
				|  |  |                      obj.ISLAST = false;
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                db.Default.SaveChanges();
 | 
	
		
			
				|  |  | +                db.Default.SaveChangesAsync();
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              var res = Enumerable.LastOrDefault(list);
 | 
	
		
			
				|  |  |              return res;
 | 
	
	
		
			
				|  | @@ -89,50 +89,23 @@ namespace WCS.Service
 | 
	
		
			
				|  |  |              newobj.UPDATEUSER = user;
 | 
	
		
			
				|  |  |              newobj.FRAME = LogicHandler.Frame;
 | 
	
		
			
				|  |  |              db.Default.Add(newobj);
 | 
	
		
			
				|  |  | -            db.Default.SaveChanges();
 | 
	
		
			
				|  |  | +            db.Default.SaveChangesAsync();
 | 
	
		
			
				|  |  |              return newobj;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        //static ConcurrentQueue<PackInfo> Packs = new ConcurrentQueue<PackInfo>();
 | 
	
		
			
				|  |  |          private static Dictionary<string, Playerback> Clients = new Dictionary<string, Playerback>();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        //private static RedisClient Redis;
 | 
	
		
			
				|  |  |          public static RedisClient YG150Redis;
 | 
	
		
			
				|  |  |          public static RedisClient YGWMS150Redis;
 | 
	
		
			
				|  |  | -        //public static RedisClient YGWCS150Redis;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          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;
 | 
	
		
			
				|  |  | -            //};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              YG150Redis = new RedisClient("192.168.249.150,password=123456,database=1");
 | 
	
		
			
				|  |  |              YGWMS150Redis = new RedisClient("192.168.249.150,password=123456,database=0");
 | 
	
		
			
				|  |  | -            //YGWCS150Redis = new RedisClient("192.168.249.150,password=123456,database=10");
 | 
	
		
			
				|  |  | -            //YGWCS150Redis.Serialize = obj =>
 | 
	
		
			
				|  |  | -            //{
 | 
	
		
			
				|  |  | -            //    var bytes = MessagePackSerializer.Serialize(obj);
 | 
	
		
			
				|  |  | -            //    return bytes;
 | 
	
		
			
				|  |  | -            //};
 | 
	
		
			
				|  |  | -            //YGWCS150Redis.DeserializeRaw = (bytes, type) =>
 | 
	
		
			
				|  |  | -            //{
 | 
	
		
			
				|  |  | -            //    var obj = MessagePackSerializer.Deserialize(type, bytes);
 | 
	
		
			
				|  |  | -            //    return obj;
 | 
	
		
			
				|  |  | -            //};
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        //static ConcurrentDictionary<string, DeviceData> Datas = new ConcurrentDictionary<string, DeviceData>();
 | 
	
		
			
				|  |  |          public override void Publish(string code, WCS_PROTOCOLDATA obj)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              try
 | 
	
	
		
			
				|  | @@ -193,15 +166,6 @@ 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);
 | 
	
		
			
				|  |  | -                //    YGWCS150Redis.Set(etype.Name, coll);
 | 
	
		
			
				|  |  | -                //});
 | 
	
		
			
				|  |  |                  DeviceDataPack pack = new DeviceDataPack();
 | 
	
		
			
				|  |  |                  pack.Frame = LogicHandler.Frame;
 | 
	
		
			
				|  |  |                  foreach (var g in gs)
 | 
	
	
		
			
				|  | @@ -216,29 +180,12 @@ namespace WCS.Service
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  var sw = new Stopwatch();
 | 
	
		
			
				|  |  |                  sw.Start();
 | 
	
		
			
				|  |  | -                //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);
 | 
	
		
			
				|  |  | -                //YGWCS150Redis.RPush("Packs", pack);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                //var len = Redis.LLen("Packs");
 | 
	
		
			
				|  |  | -                //if (len > 150000)
 | 
	
		
			
				|  |  | -                //{
 | 
	
		
			
				|  |  | -                //    Redis.LTrim("Packs", 20000, len);
 | 
	
		
			
				|  |  | -                //}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                //var len1 = YGWCS150Redis.LLen("Packs");
 | 
	
		
			
				|  |  | -                //if (len1 > 150000)
 | 
	
		
			
				|  |  | -                //{
 | 
	
		
			
				|  |  | -                //    YGWCS150Redis.LTrim("Packs", 20000, len1);
 | 
	
		
			
				|  |  | -                //}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |                  foreach (var data in AllDatas)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      LastInfo[data.Key] = data.Value.Info;
 | 
	
	
		
			
				|  | @@ -255,7 +202,6 @@ namespace WCS.Service
 | 
	
		
			
				|  |  |              catch (Exception ex)
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            //Datas.Clear();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |