wms电梯设定,新增开关电梯控制接口
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Concurrent;
|
||||
using Aop.Api.Domain;
|
||||
using JNPF;
|
||||
using JNPF.Common.Extension;
|
||||
using JNPF.Common.Security;
|
||||
@@ -26,24 +27,24 @@ namespace Tnb.WarehouseMgr
|
||||
private IEventPublisher _eventPublisher = default!;
|
||||
private readonly ElevatorControlConfiguration _elevatorControlConfiguration = App.Configuration.Build<ElevatorControlConfiguration>();
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
private readonly IHostApplicationLifetime _lifeTime;
|
||||
private static List<string> s_heartbeatDevNames = new();
|
||||
//private static Dictionary<string, Func<CancellationToken?, Task>> _timedFuncMap = new(StringComparer.OrdinalIgnoreCase);
|
||||
public TimedTaskBackgroundService(IServiceProvider serviceProvider)
|
||||
public TimedTaskBackgroundService()
|
||||
{
|
||||
_serviceProvider = serviceProvider;
|
||||
}
|
||||
|
||||
protected override Task ExecuteAsync(CancellationToken stoppingToken)
|
||||
{
|
||||
IsStarted = true;
|
||||
|
||||
s_heartbeatDevNames = _elevatorControlConfiguration.HeartbeatDevNames;
|
||||
Task timedTask = Task.Run(() =>
|
||||
{
|
||||
_eventPublisher = App.GetRequiredService<IEventPublisher>();
|
||||
|
||||
//电梯Agv心跳检测
|
||||
_ = TimedTask(async token =>
|
||||
{
|
||||
foreach (var devName in _elevatorControlConfiguration.HeartbeatDevNames)
|
||||
foreach (var devName in s_heartbeatDevNames)
|
||||
{
|
||||
Dictionary<string, string> parameter = new()
|
||||
{
|
||||
@@ -56,7 +57,7 @@ namespace Tnb.WarehouseMgr
|
||||
await Console.Out.WriteLineAsync($"{devName.Match(@"\d+")}#梯, 心跳检测结果:{result}");
|
||||
}
|
||||
}, stoppingToken, 30);
|
||||
|
||||
|
||||
});
|
||||
return timedTask;
|
||||
}
|
||||
@@ -144,6 +145,18 @@ namespace Tnb.WarehouseMgr
|
||||
return delayTask;
|
||||
}
|
||||
|
||||
public Task CloseAgvHeartbeat(IEnumerable<string> devNames)
|
||||
{
|
||||
s_heartbeatDevNames.RemoveAll(x => devNames.Contains(x));
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public Task OpenAgvHeartbeat(IEnumerable<string> devNames)
|
||||
{
|
||||
s_heartbeatDevNames.AddRange(devNames);
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 自定义任务调度器,保证长任务在单独的线程中运行
|
||||
|
||||
Reference in New Issue
Block a user