与任务执行,新增信号量锁,解决并发环境下数据的一致性问题

This commit is contained in:
yang.lee
2023-11-03 22:12:01 +08:00
parent 669c4228e8
commit 537e54b565
5 changed files with 61 additions and 28 deletions

View File

@@ -61,7 +61,7 @@ namespace Tnb.WarehouseMgr
IEventPublisher eventPublisher,
IUserManager userManger,
IElevatorControlService elevatorControlService
) : base(repository.AsSugarClient())
) //: base(repository.AsSugarClient())
{
_db = repository.AsSugarClient();
_wareHouseService = wareHouseService;
@@ -69,6 +69,7 @@ namespace Tnb.WarehouseMgr
_eventPublisher = eventPublisher;
_userManager = userManger;
_elevatorControlService = elevatorControlService;
_ = InitializationTask;
}
/// <summary>
@@ -111,7 +112,7 @@ namespace Tnb.WarehouseMgr
try
{
Logger.Information($"当前任务Id:{elevator.distask_id}");
if (_elevatorMap.TryGetValue(elevator.device_id, out var elevatorCode))
if (s_elevatorMap.TryGetValue(elevator.device_id, out var elevatorCode))
{
var devName = elevatorCode?.ToString() ?? _eleCtlCfg.DevName;
(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) = await _elevatorControlService.GetElevatorStatus(devName, CancellationToken.None);
@@ -164,7 +165,7 @@ namespace Tnb.WarehouseMgr
.FirstAsync();
if (elevator.IsNull())
throw new Exception($"根据参数,sourceName:{input.sourceName},taskCode:{input.taskCode},未找到匹配的电梯任务");
if (_elevatorMap.TryGetValue(elevator.elevator_id, out var elevatorCode))
if (s_elevatorMap.TryGetValue(elevator.elevator_id, out var elevatorCode))
{
var devName = elevatorCode?.ToString() ?? _eleCtlCfg.DevName;
(int sysStatus, int runStatus, int floorNo, int doorStatus, int agvStatus) = await _elevatorControlService.GetElevatorStatus(devName, CancellationToken.None);//elevator.elevator_code