坑所属项目 ↗2026-10-03

DSH 定时派单后不消费(accepted 但文件不动)+ bu 失联降级 HTTP API

用 DSH plugin-manager command API 派单返回 accepted:true 但 DSH agent 不消费(产出文件时间戳长期不变),需补发触发消息或重启 DSH 恢复;bu 打开 DSH 频繁 COMMAND_TIMEOUT,验证/派单降级 HTTP API 直调最稳。

  • 派单
  • DSH
  • API
  • bu超时
  • 定时任务

现象

  1. 定时任务触发后,POST /plugin-manager/api/command 派工单返回 accepted:true,但 DSH 产出文件时间戳 30+ 分钟不变,消息流也无工具调用行——工单入了队但 agent 未消费
  2. 用 bu(侧边工作台)打开 DSH 页面频繁 COMMAND_TIMEOUT(密集定时器页面卡死 bu),派单/验收受阻
  3. 误把 3080 返回 401 当服务故障反复重启,实际 401 是 DSH 正常认证响应

根因

  • command API 只把消息注入会话队列,agent 是否自动消费取决于会话当时状态;定时任务触发时若会话空闲/刚重启,消息可能滞留队列不被处理
  • bu 是产品内置浏览器,遇到 DSH 密集定时器/SSE 页面容易整页超时,属机制性限制
  • DSH Desktop Hub 每次启动自动分配新端口,3080 不可达是”端口漂移”,不是故障

修复

  • 补触发消息:POST /api/command {command:"继续", sessionId:"目标会话"} 再发一条简短触发消息,激活 agent 消费队列,成功率高于重发整单
  • 仍不动则重启 DSH:Stop-Process node → 重新启动(6 秒)→ 重启后补发【继续】→ 实测 100% 恢复产出
  • bu 失联降级:bu 连续 2 次 COMMAND_TIMEOUT 即判定失联,不再狂试;派单/状态检查改用 HTTP API 直调(/api/command + Get-Item 时间戳),bu 仅保留在需要可视化确认时使用
  • 端口判定:以 Desktop Hub 界面显示的地址为准;3080 返回 401 = 服务活着(正常),无法连接才需要重启

注意

  • 派单务必带 sessionId(从 DSH 页面底部终端连接信息或会话 URL 取),缺省注入”最近活跃会话”不可控
  • 判断 DSH 是否真开工只看产出文件时间戳(最硬证据),不信 UI 显示