`AutomaticPipelineExecutionContext` 本身不会造成等待。它只是一个参数对象,用来把以下信息统一传给流水线阶段

发布时间:2026/10/24 3:55:02
`AutomaticPipelineExecutionContext` 本身不会造成等待。它只是一个参数对象,用来把以下信息统一传给流水线阶段 AutomaticPipelineExecutionContext本身不会造成等待。它只是一个参数对象用来把以下信息统一传给流水线阶段Product Stage CancellationToken TestPassed当前代码varcontextnewAutomaticPipelineExecutionContext(product,AutomaticPipelineStage.Loading,linkedCancellation.Token);AutomaticPipelineStageResultresultawait_handlers.ExecuteAsync(context);实际执行过程是LoadWorker - ExecuteAsync(context) - _handlers.LoadAsync(product, token) - StationMaterialService.LoadAsync - LoadProduct.StartAsync - 等待 PLC 上料条件 - 扫码也就是说它和之前的逻辑本质等价LoadProductResultresultawait_handlers.LoadAsync(product,linkedCancellation.Token);ExecuteAsync只是多做了两件事1.根据 Stage 选择对应的业务委托2.将 ProcessStepResult 转换成 AutomaticPipelineStageResult不会增加 PLC 等待也不会增加扫码等待。真正可能造成等待的位置有以下几个。1. 初始上料条件等待时间过长LoadProduct.cs中privateconstintPlcPollingTimeoutMs3000_000;这等于3,000,000 毫秒 3,000 秒 50 分钟因此如果以下任意条件不满足LoadProduct.StartAsync最长可能等待 50 分钟允许上料标志位 true 上料位载盘检测 true 吹扫完成标志位 ! 52. 扫码失败后的退料等待StationMaterialService.LoadAsync中如果已经取得部分 SNif(result.RequiresUnloading){awaitScanFailureUnloadAsync(productCodes,...,CancellationToken.None);}此时会继续等待允许取料 器件被取走 光幕恢复 上料位对应光电无料 载盘仍在位取料等待最长可能达到 100 分钟。这是为了防止器件已经放入设备却被取消后遗留现场。3.linkedCancellation只是合并取消信号CancellationTokenSource.CreateLinkedTokenSource(cancellationToken,product.LoadCancellationToken);它表示以下任意一个取消都会触发当前上料流程取消整条流水线停止 当前产品的上料请求被取消但取消是否立即生效取决于LoadProduct内部是否正确使用该 Token。它本身不会主动阻塞。4. 当前和旧逻辑的真正区别旧逻辑LoadProductResultresultawait_handlers.LoadAsync(product,token);当前逻辑AutomaticPipelineStageResultresultawait_handlers.ExecuteAsync(context);当前逻辑只是把返回值包装成AutomaticPipelineStageResult其内部的LegacyResult仍然保存原来的LoadProductResult因此单纯改回旧写法不能解决等待问题。结论问题不在AutomaticPipelineExecutionContext也不在_handlers.ExecuteAsync(context)真正需要检查的是PLC 是否满足初始上料条件PlcPollingTimeoutMs 3000_000是否误设置成了 50 分钟扫码失败后是否进入了ScanFailureUnloadAsync是否因为CancellationToken.None持续等待现场取料日志中是否出现以下关键记录初始上料许可等待PLC条件 等待取料许可 取料完成条件建议暂时保留AutomaticPipelineExecutionContext它只是框架封装。应先在LoadWorker前后增加日志确认具体卡在“上料许可、扫码、退料”哪一步而不是删除 Context。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询