心跳、读缓存调整

This commit is contained in:
2024-07-25 14:59:44 +08:00
parent 65eed56fad
commit 201293b82f
4 changed files with 92 additions and 56 deletions

View File

@@ -9,7 +9,9 @@ using JNPF.Logging;
using JNPF.Systems.Entitys.System;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json.Linq;
using NPOI.OpenXmlFormats.Dml.Diagram;
using NPOI.SS.Format;
using Tnb.Common.Extension;
using Tnb.Common.Utils;
using Tnb.WarehouseMgr.Entities.Configs;
@@ -32,14 +34,19 @@ namespace Tnb.WarehouseMgr
private readonly IHostApplicationLifetime _lifeTime;
private List<string> s_heartbeatDevNames = new();
//private static Dictionary<string, Func<CancellationToken?, Task>> _timedFuncMap = new(StringComparer.OrdinalIgnoreCase);
public static Dictionary<string, bool> elevatorStatus = new Dictionary<string, bool>();
public TimedTaskBackgroundService()
{
s_heartbeatDevNames = _elevatorControlConfiguration.HeartbeatDevNames;
if (elevatorStatus.Count == 0)
foreach (var devName in s_heartbeatDevNames)
elevatorStatus.Add(devName, false);
}
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
IsStarted = true;
s_heartbeatDevNames = _elevatorControlConfiguration.HeartbeatDevNames;
Task timedTask = Task.Run(() =>
{
_eventPublisher = App.GetRequiredService<IEventPublisher>();
@@ -56,12 +63,23 @@ namespace Tnb.WarehouseMgr
["token"] = _elevatorControlConfiguration.token
};
Log.Information($"{devName.Match(@"\d+")}#梯, 心跳检测");
string result = await HttpClientHelper.GetAsync(_elevatorControlConfiguration.WriteTagUrl, pars: parameter);
Log.Information($"{devName.Match(@"\d+")}#梯, 心跳检测结果:{result}");
//var result = await RedisHelper.HSetAsync(devName, ElevatorConsts.AGVKeepalive, "123");
await Console.Out.WriteLineAsync($"{devName.Match(@"\d+")}#梯, 心跳检测结果:{result}");
try
{
string result = await HttpClientHelper.GetAsync(_elevatorControlConfiguration.WriteTagUrl, pars: parameter);
Log.Information($"{devName.Match(@"\d+")}#梯, 心跳检测结果:{result}");
JObject resObj = JObject.Parse(result);
elevatorStatus[devName] = resObj["Result"].ToString() == "Ok";
//var result = await RedisHelper.HSetAsync(devName, ElevatorConsts.AGVKeepalive, "123");
await Console.Out.WriteLineAsync($"{devName.Match(@"\d+")}#梯, 心跳检测结果:{result}");
}
catch (Exception ex)
{
Log.Error($"{devName.Match(@"\d+")}#梯, 心跳检测结果:{ex.Message}");
elevatorStatus[devName] = false;
}
}
}, stoppingToken, 30);
});