wanshenmean
3 天以前 b690250002ee04f4309e6a90fd16fbfd9bd959e2
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 层保持兜底语义