gongxiangp2/docs/production-worker-readiness.md

16 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 应用发布的后台处理器就绪检查
正式应用沿用 `direct` 单槽短暂停机替换。HTTP 健康检查通过后,后台处理器可能仍在异步初始化;健康检查不替代上传、转码的能力检查。
重新创建容器时,从临时环境文件中移除部署器负责的两类 worker/instance/runtime 字段及 `DEPLOYMENT_VERSION`,随后只加入本次实例的唯一值。原环境文件不修改,用户配置、个人 Key、平台密钥和转码并发设置均保留。
切换流量前,发布脚本最多等待 60 秒,固定本次候选的容器 ID 和实例编号。只有同一存活容器的转码、任务详情上传两种能力文件均匹配本次提交、worker 和 instance,才继续原有逐项校验。旧能力文件、候选退出、容器被替换或等待超时均不能通过。等待只读状态,不重启候选、不重新部署、不改写能力文件。
需要自动回退时,先尝试把候选最后 400 行日志和有限状态留在本项目当前 `release.env` 的父目录下:
`/mnt/PoolOne/apps/youyidian-3d/releases/native-final-<SHA>/diagnostics/<候选>-<时间>-<随机编号>/`
目录权限为 `0700`,文件为 `0600`。状态只包含容器身份、运行状态及两类处理器的非密配置,不保存环境变量全集;原始日志可能含敏感业务信息,只保留服务器私有文件,发布输出仅返回目录路径。证据保存失败仍执行原有回退,不以收集诊断为由保留不健康候选。
2026-10-22 首次候选未通过转码能力检查,已回退到 `419602a1`。只读检查发现,从运行容器捕获的环境再叠加 `-e` 会保留重复实例字段;旧门禁取第一项,进程发布的能力文件对应最后一项,导致编号不匹配。修复只作用于新容器构造,不改线上原环境文件。候选自身 `json-file` 日志已随删除丢失,因此不能排除候选还存在其他初始化问题;新增的有界等待和回退前私有留证继续保留。不会绕过能力检查,也不会据此重发任何模型请求。