无入站流量的服务靠数据与配置隔离环境
这类服务的环境隔离手段:
| 维度 | 作用 |
|---|---|
| 数据库 | 真正的隔离线:测试库与正式库必须分开,否则测试任务被正式 Worker 消费掉 |
| env 文件 | 独立 .env.worker.staging(NODE_ENV、观测平台 environment 标签) |
| 镜像 | 复用同一份不可变镜像,只换 env 与目录,避免测试的是另一份代码 |
| Compose project name / 目录 | 让两套进程互不覆盖 |
| 调度锁(flock) | 防止两边 Cron 撞在同一份任务上 |
关键判据:隔离要看「共享了什么可变状态」,而不是看「进程跑在哪」。 一个 worker 只要连了正式库,就算部署在另一个目录、另一个 Compose 项目里,也等于没有测试环境。
验收方式也顺着这条线:测试侧 enqueue 一条任务 → 手动跑一次 staging worker → 校验结果与用量事件 → 确认正式库任务数量完全不变。
相关:deploy目录是运行配方不是另一套应用、本地开发脚本可能连生产资源、派生数据只在写入时入队旧数据要单独回填