Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotJob.cs
@@ -203,6 +203,20 @@ return; } // 获取该设备的互斥锁,确保 Job 执行与消息处理互斥 var robotLock = _stateManager.GetOrCreateLock(ipAddress); // 锁被消息处理器占用时直接跳过本次 tick,等下次调度再执行 //if (!await robotLock.WaitAsync(TimeSpan.Zero)) //{ // return; //} // 获取该设备的互斥锁,确保 Job 执行与消息处理互斥 await robotLock.WaitAsync(); try { if (state.CurrentAction == "Picking" || state.CurrentAction == "Puting") { return; @@ -245,6 +259,11 @@ } } } finally { robotLock.Release(); } } catch (Exception ex) { // 异常处理已在组件内部进行,Job 层保持兜底语义