|
|
@@ -92,19 +92,38 @@ namespace WCS.Service
|
|
|
static ProtocolProxy()
|
|
|
{
|
|
|
MessagePackSerializer.DefaultOptions = StandardResolver.Options.WithCompression(MessagePackCompression.Lz4Block);
|
|
|
- //RedisHelper.CreateContext("127.0.0.1,database=0", "default", true);
|
|
|
- RedisHelper.CreateContext("127.0.0.1,database=10", "3D");
|
|
|
- RedisHelper.CreateContext("127.0.0.1,database=1", "ConcurrencyControlRedis");
|
|
|
- RedisHelper.Default.Serialize = obj =>
|
|
|
+
|
|
|
+ #region 初始化Redis连接
|
|
|
+
|
|
|
+ var redisConnectionStrings = RedisHelper.Default.Check("RedisConnectionStrings") ?? throw new Exception("请在Redis中配置RedisConnectionStrings");
|
|
|
+ Configs.RedisConnectionStrings = JsonConvert.DeserializeObject<List<DataBaseConnectionString>>(redisConnectionStrings);
|
|
|
+ if (Configs.RedisConnectionStrings != null)
|
|
|
{
|
|
|
- var bytes = MessagePackSerializer.Serialize(obj);
|
|
|
- return bytes;
|
|
|
- };
|
|
|
- RedisHelper.Default.DeserializeRaw = (bytes, type) =>
|
|
|
+ if (Configs.RedisConnectionStrings.All(v => v.Key != "Monitor")) throw new Exception("请在RedisConnectionStrings中配置监控RedisDB库连接字符串");
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach (var redisConnection in Configs.RedisConnectionStrings!)
|
|
|
{
|
|
|
- var obj = MessagePackSerializer.Deserialize(type, bytes);
|
|
|
- return obj;
|
|
|
- };
|
|
|
+ RedisHelper.CreateContext(redisConnection.ConnectionString, redisConnection.Key);
|
|
|
+ switch (redisConnection.Key)
|
|
|
+ {
|
|
|
+ case "Monitor":
|
|
|
+ RedisHelper.SetMonitorContextType(redisConnection.Key);
|
|
|
+ RedisHelper.Monitor.Serialize = obj =>
|
|
|
+ {
|
|
|
+ var bytes = MessagePackSerializer.Serialize(obj);
|
|
|
+ return bytes;
|
|
|
+ };
|
|
|
+ RedisHelper.Monitor.DeserializeRaw = (bytes, type) =>
|
|
|
+ {
|
|
|
+ var obj = MessagePackSerializer.Deserialize(type, bytes);
|
|
|
+ return obj;
|
|
|
+ };
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion 初始化Redis连接
|
|
|
}
|
|
|
|
|
|
public override void Publish(string code, WCS_PROTOCOLDATA obj)
|
|
|
@@ -185,23 +204,23 @@ namespace WCS.Service
|
|
|
|
|
|
var sw = new Stopwatch();
|
|
|
sw.Start();
|
|
|
- RedisHelper.Default.Set(nameof(DeviceDataPack), pack);
|
|
|
- RedisHelper.Default.RPush("Packs", pack);
|
|
|
+ RedisHelper.Monitor.Set(nameof(DeviceDataPack), pack);
|
|
|
+ RedisHelper.Monitor.RPush("Packs", pack);
|
|
|
sw.Stop();
|
|
|
Console.ForegroundColor = ConsoleColor.Blue;
|
|
|
Console.WriteLine($"Redis耗时{sw.ElapsedMilliseconds}");
|
|
|
Console.ResetColor();
|
|
|
|
|
|
- var len = RedisHelper.Default.LLen("Packs");
|
|
|
+ var len = RedisHelper.Monitor.LLen("Packs");
|
|
|
if (len > 150000)
|
|
|
{
|
|
|
- RedisHelper.Default.LTrim("Packs", 20000, len);
|
|
|
+ RedisHelper.Monitor.LTrim("Packs", 20000, len);
|
|
|
}
|
|
|
|
|
|
#endregion 存入Redis
|
|
|
|
|
|
var converter = new System.Text.UnicodeEncoding();
|
|
|
-
|
|
|
+
|
|
|
var plcRawData = new PlcRawData
|
|
|
{
|
|
|
CONTENT = converter.GetBytes(JsonConvert.SerializeObject(pack)),
|