无入站流量的服务靠数据与配置隔离环境

**没有入站流量的后台 Worker(队列消费、Cron)不能用域名/端口分环境 —— 它的隔离维度是数据库、env、镜像和调度锁。**

这类服务的环境隔离手段:

维度作用
数据库真正的隔离线:测试库与正式库必须分开,否则测试任务被正式 Worker 消费掉
env 文件独立 .env.worker.staging(NODE_ENV、观测平台 environment 标签)
镜像复用同一份不可变镜像,只换 env 与目录,避免测试的是另一份代码
Compose project name / 目录让两套进程互不覆盖
调度锁(flock)防止两边 Cron 撞在同一份任务上

关键判据:隔离要看「共享了什么可变状态」,而不是看「进程跑在哪」。 一个 worker 只要连了正式库,就算部署在另一个目录、另一个 Compose 项目里,也等于没有测试环境。

验收方式也顺着这条线:测试侧 enqueue 一条任务 → 手动跑一次 staging worker → 校验结果与用量事件 → 确认正式库任务数量完全不变。

相关:deploy目录是运行配方不是另一套应用、本地开发脚本可能连生产资源、派生数据只在写入时入队旧数据要单独回填