扩展到多实例
一个实例一次跑一个流程。流程内部没有任何东西能并发——这个产品里的并行就是更多实例,每个带自己的队列。(为什么。)
1 · 先给宿主机做预算
按推荐基线,每个实例要 2 核 CPU、2 GB 内存。四个实例大约 8 核 8 GB,这还没算 Windows 自己那份。规模化后自动化不稳,最常见的原因不是流程——是宿主机没余量了。
2 · 克隆,别重新配置
用 MuMu 的 Copy(见这里),让每个实例保持完全相同的 1280×720 · DPI 240 · 30 FPS 基线。分辨率一致,一套模板才能服务整个池子——不一致的实例会让每个队列项被标记,还会破坏按像素的匹配。
然后在实例仪表盘逐个添加。
3 · 一个流程,多个队列
不要按实例复制流程。队列项保存它自己的输入值,同一个已保存的流程用不同参数服务整个池子:
| 实例 | 流程 | rounds |
|---|---|---|
mumu-0 | Farm Resources | 3 |
mumu-1 | Farm Resources | 10 |
把旋钮声明成 Flow Input,值设在各个队列项上。只维护一个流程。
4 · 错开计划任务
每个计划任务针对一个实例。规模化后有两个坑:
- 同一实例上多个间隔任务——互相跳过(忙 = 被跳过,不补)。错开时间,或用 Priority。
- 所有实例都 08:00 启动——全机 CPU 尖峰。彼此错开几分钟。
见计划任务。
5 · 别让实例重复彼此的活
默认情况下实例互不知情——记忆作用域 run、session、persist 都是按实例的。这种隔离通常正是你要的。
不是的时候——十个实例不能都去收同一个共享目标——就往 shared 作用域写一条 Runtime Memory:它是唯一有意的跨实例存储。冷却守卫模式在整个池子上和在单实例上一样好使。
常见错误
| 错误 | 结果 | 修法 |
|---|---|---|
| 指望一个实例同时跑两个排队流程 | 队列是序列 | 加实例 |
| 手工克隆、分辨率不同 | 只有那个实例的模板坏 | 用 MuMu Copy,守住基线 |
| 每实例一份流程副本 | N 份要维护 | Flow Input + 按项赋值 |
| 间隔任务在一个实例上相撞 | 无尽的 Skipped (busy) | 错开,或 Priority |
什么都用 shared 作用域 | 实例互相挡住不相干的活 | shared 只放真正共享的状态 |
相关
实例仪表盘 · Flow Queue · 无人值守运行