跳转至

听云 OCM 催办单 · B1+B2 MFR 部署(超期待回执)

字段
催办编号 OCL-URGENT-20260827-01
催办方 听写 DT
被催办方 听云 OCM
催办时间 2026-08-27(用户指令触发:"听云的任务似乎执行太久了,请催办处理")
关联原外派单 OCL-TASK-L-20260827-01(B1+B2 启动 mfr-portal + Caddy 反代)
关联原 DTL L-20260827-01(Phase 4 阻塞根因)、L-20260827-02(外派通知,等待回执中)
当前状态 🟡 外派已签发 + 超期待回执 → 本次正式催办

一、催办事由

原外派单 OCL-TASK-L-20260827-01 签发后,听云侧尚未回传 A1~A6 验收断言结果与 OCL 日志编号。用户感知"执行太久",现按协作流程正式催办

本催办不代表听云一定未执行——也可能是执行了但未回执。无论执行状态如何,请听云立即按本催办单 §三 回复 3 条信息(哪怕是"执行中/遇到阻塞"也要回执,避免听写与用户端无任何反馈空等)。


二、原任务回顾(供听云快速定位,无需重读外派单)

2 个子任务,总共 9 条命令 + 6 条断言,预计耗时 ≤ 10 分钟(正常情况下):

B1 · 启动 mfr-portal.service(4 条)

systemctl enable --now mfr-portal.service
systemctl is-active mfr-portal.service   # → active
ss -tlnp | grep ':3000'                  # → LISTEN + node
curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:3000/  # → 200

B2 · Caddy /mfr/* 反代(5 步 + 3 条 curl 断言)

  1. 备份 Caddyfile → 2. handle /admin/* 紧前面 插入:
    handle_path /mfr/* { reverse_proxy http://127.0.0.1:3000 }
    
    → 3. caddy validate → 4. systemctl reload caddy → 5. curl 断言:
    curl http://127.0.0.1/mfr/       # → 200
    curl http://127.0.0.1/mfr/login  # → 200
    curl -s http://127.0.0.1/mfr/ | grep -c '/admin/_next/'  # → 0(关键)
    

验收 6 断言(回执时请逐条报实际输出)

A1=active / A2=LISTEN数 / A3=:3000码 / A4=/mfr/码 / A5=/mfr/login码 / A6=/admin/_next/出现次数


三、回执要求(无论是否完成,30 分钟内必须回传以下 3 条)

以下 3 条是本次催办的最低回执要求,即使未执行完成、或遇到阻塞也必须回复,避免协作空转。

# 回执内容 说明
R1 当前执行进度状态(三选一) 🟢 已完成全部 6 断言 / 🟡 正在执行中(报已完成到哪一步) / 🔴 遇到阻塞(详见 R3)
R2 已执行部分的实际输出(若已部分/全部完成) 已做到哪条命令,对应输出是什么;6 断言中已测的 A1~A? 的实际值
R3 阻塞点(若有) 哪一步失败了、错误信息原文、已尝试的排查步骤、是否需要听写侧协调(如重新打包代码、调整外派单内容)

回执格式示例(可直接复制后填值):

[听云回执 OCL-URGENT-20260827-01]
R1 状态:🟢 已完成 / 🟡 执行中 / 🔴 阻塞
R2 断言:A1=___ / A2=___ / A3=___ / A4=___ / A5=___ / A6=___
R3 阻塞:___(无则填 N/A,有则贴错误原文 + 已排查步骤)
OCL 日志编号:L-YYYYMMDD-NN
完成/回执时间:YYYY-MM-DD HH:MM
备注:___


四、截止时间 & 超时升级机制

节点 时间(自本催办单签发起计) 动作
期望完成 +30 分钟内 听云回传 R1~R3,6 断言全通过 → 听写启动 D01 回归
首次跟进 +1 小时 若仍无回执,听写二次催办 + 记录超时标记
🚨 升级通报 +2 小时 若仍无回执/无明确进展,听写升级通报用户,由用户决定是否调整协作方式或改由其他通道联系听云
🔴 阻塞升级 听云回执 R3 有阻塞但 30 分钟内无后续进展 听写按阻塞类型协调资源(standalone 缺失→催听码重打包 / Caddy 语法→外派单发修正片段 / 其他→升级用户)

五、听云侧快速排障速查(执行时若遇卡壳,先查本表)

症状 最可能原因 1 分钟快速处理
B1-2 is-active 返回 failed/inactive standalone 文件不存在 / node 路径错 journalctl -u mfr-portal.service -n 50 --no-pager 看错误 → 若报"No such file",直接回执 R3=standalone 缺失,听写协调重打包
B1-4 curl :3000 连接拒绝(空响应/000) node 进程崩溃或未真正启动 systemctl restart mfr-portal.service 等 5s 再试 → 仍失败则 cat /var/log/mfr-portal.err | tail -30 取错误栈回执
B2-3 caddy validate 报 syntax error 插入时少写了 } 或缩进混乱 用外派单 §B2-2 末尾给的"插入后完整片段"对比,缺什么补什么;实在不行先 cp Caddyfile.bak.* Caddyfile 回滚再 validate 一次确认基线正常
B2-5c grep 出 /admin/_next/(次数 ≥1) 插入位置错了(放在 /admin/* 后面了) 打开 Caddyfile,找到 handle_path /mfr/* 块,剪切粘贴# ========== OPR-Admin Next.js... 注释行的紧前面 → 再 validate + reload
reload caddy 后 502 caddy reload 实际失败了,服务还跑旧配置 systemctl status caddy -n 30 看报错 → 回滚 bak 文件后 reload

六、协作关系重申(避免误解)

本次催办非问责,只为避免"听写端空等 + 用户端无反馈"的协作断档: - 听云如果还没开始做 → 请回执 R1=🟡 + 预计开始时间,听写同步用户即可 - 听云如果做到一半卡壳了 → 请回执 R3=错误原文,听写立即协调(不用自己硬扛) - 听云如果已经做完但忘了回执 → 请补传 R2=A1~A6 实际值 + OCL 编号,听写立即启动 D01(最理想情况) - 三 AI 协作,信息同步优先,完成与否都请先回个话 🙏

— 催办单签发完毕,静听云回执 —