|
|
@@ -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)
|
|
|
{
|