1、解决SnowflakeIdHeler.NextId()空引用问题

2、将Agv心跳检测服务移至自定义定时服务,统一维护管理
This commit is contained in:
yang.lee
2023-10-16 13:53:33 +08:00
parent 9597c9b3e5
commit 66242f929d
10 changed files with 163 additions and 204 deletions

View File

@@ -45,6 +45,7 @@ namespace Tnb.WarehouseMgr
{
public bool IsStarted { get; set; }
private IEventPublisher _eventPublisher = default!;
private ElevatorControlConfiguration _elevatorControlConfiguration = App.Configuration.Build<ElevatorControlConfiguration>();
private readonly IServiceProvider _serviceProvider;
private static Dictionary<string, Func<CancellationToken?, Task>> _timedFuncMap = new(StringComparer.OrdinalIgnoreCase);
static TimedTaskBackgroundService()
@@ -89,16 +90,16 @@ namespace Tnb.WarehouseMgr
_eventPublisher = App.GetRequiredService<IEventPublisher>();
var whSvc = App.GetRequiredService<IWareHouseService>();
TimedTask(token => whSvc.GenTaskExecute(token), stoppingToken, 1);
//齐套出库
//var kittingOutService = App.GetRequiredService<IWmskittingOutService>();
//TimedTask(token => kittingOutService.KittingOutByAdd(token), stoppingToken, 1);
//TimedTask(token => kittingOutService.KittingOutByIsToBeShipped(token), stoppingToken, 1);
////齐套出库
var kittingOutService = App.GetRequiredService<IWmskittingOutService>();
TimedTask(token => kittingOutService.KittingOutByAdd(token), stoppingToken, 1);
TimedTask(token => kittingOutService.KittingOutByIsToBeShipped(token), stoppingToken, 1);
//齐套分拣
//var setSortingService = App.GetRequiredService<IWmsSetSortingService>();
//TimedTask(token => setSortingService.PackSortingByAdd(token), stoppingToken, 1);
var setSortingService = App.GetRequiredService<IWmsSetSortingService>();
TimedTask(token => setSortingService.PackSortingByAdd(token), stoppingToken, 2);
var _elevatorControlConfiguration = App.Configuration.Build<ElevatorControlConfiguration>();
TimedTask(async token =>
TimedTask(async token =>
{
var parameter = new Dictionary<string, string>();
parameter["DevName"] = _elevatorControlConfiguration.DevName;
@@ -107,7 +108,7 @@ namespace Tnb.WarehouseMgr
parameter["token"] = _elevatorControlConfiguration.token;
var result = await HttpClientHelper.GetAsync(_elevatorControlConfiguration.WriteTagUrl, pars: parameter);
await Console.Out.WriteLineAsync($"心跳检测结果:{result}");
},stoppingToken,30,TimeSpanUnit.Seconds);
}, stoppingToken, 30, TimeSpanUnit.Seconds);
//最低库存检查
var transferSignService = App.GetRequiredService<IWmsPDATransferSignService>();
TimedTask(token => transferSignService.IsMinStorage(token), stoppingToken, 30, TimeSpanUnit.Minutes);
@@ -130,19 +131,19 @@ namespace Tnb.WarehouseMgr
{
if (ex is TimedTaskException timedTaskEx and not null)
{
//await _eventPublisher.PublishAsync(new LogEventSource("Log:CreateExLog", timedTaskEx.options!, new SysLogEntity
//{
// Id = SnowflakeIdHelper.NextId(),
// Category = 4,
// UserId = timedTaskEx.UserId,
// UserName = timedTaskEx.UserName,
// IPAddress = NetHelper.Ip,
// RequestURL = timedTaskEx.RequestURL,
// RequestMethod = timedTaskEx.RequestMethod,
// Json = timedTaskEx + "\n" + timedTaskEx.InnerException?.StackTrace + "\n" + timedTaskEx?.TargetSite?.GetParameters().ToString(),
// //PlatForm = string.Format("{0}-{1}", userAgent.OS.ToString(), userAgent.RawValue),
// CreatorTime = DateTime.Now
//}));
await _eventPublisher.PublishAsync(new LogEventSource("Log:CreateExLog", timedTaskEx.options!, new SysLogEntity
{
Id = SnowflakeIdHelper.NextId(),
Category = 4,
UserId = timedTaskEx.UserId,
UserName = timedTaskEx.UserName,
IPAddress = NetHelper.Ip,
RequestURL = timedTaskEx.RequestURL,
RequestMethod = timedTaskEx.RequestMethod,
Json = timedTaskEx + "\n" + timedTaskEx.InnerException?.StackTrace + "\n" + timedTaskEx?.TargetSite?.GetParameters().ToString(),
//PlatForm = string.Format("{0}-{1}", userAgent.OS.ToString(), userAgent.RawValue),
CreatorTime = DateTime.Now
}));
}
});
await TaskDelay(timeType, interval);
@@ -182,7 +183,7 @@ namespace Tnb.WarehouseMgr
public override Task StopAsync(CancellationToken cancellationToken)
{
IsStarted = false;
return Task.CompletedTask;
}