跳到主要内容

扩展到多实例

一个实例一次跑一个流程。流程内部没有任何东西能并发——这个产品里的并行就是更多实例,每个带自己的队列。(为什么。)

1 · 先给宿主机做预算

按推荐基线,每个实例要 2 核 CPU、2 GB 内存。四个实例大约 8 核 8 GB,这还没算 Windows 自己那份。规模化后自动化不稳,最常见的原因不是流程——是宿主机没余量了。

2 · 克隆,别重新配置

用 MuMu 的 Copy见这里),让每个实例保持完全相同的 1280×720 · DPI 240 · 30 FPS 基线。分辨率一致,一套模板才能服务整个池子——不一致的实例会让每个队列项被标记,还会破坏按像素的匹配。

然后在实例仪表盘逐个添加。

3 · 一个流程,多个队列

不要按实例复制流程。队列项保存它自己的输入值,同一个已保存的流程用不同参数服务整个池子:

实例流程rounds
mumu-0Farm Resources3
mumu-1Farm Resources10

把旋钮声明成 Flow Input,值设在各个队列项上。只维护一个流程。

4 · 错开计划任务

每个计划任务针对一个实例。规模化后有两个坑:

  • 同一实例上多个间隔任务——互相跳过(忙 = 被跳过,不补)。错开时间,或用 Priority
  • 所有实例都 08:00 启动——全机 CPU 尖峰。彼此错开几分钟。

计划任务

5 · 别让实例重复彼此的活

默认情况下实例互不知情——记忆作用域 runsessionpersist 都是按实例的。这种隔离通常正是你要的。

不是的时候——十个实例不能都去收同一个共享目标——就往 shared 作用域写一条 Runtime Memory:它是唯一有意的跨实例存储。冷却守卫模式在整个池子上和在单实例上一样好使。

常见错误

错误结果修法
指望一个实例同时跑两个排队流程队列是序列加实例
手工克隆、分辨率不同只有那个实例的模板坏用 MuMu Copy,守住基线
每实例一份流程副本N 份要维护Flow Input + 按项赋值
间隔任务在一个实例上相撞无尽的 Skipped (busy)错开,或 Priority
什么都用 shared 作用域实例互相挡住不相干的活shared 只放真正共享的状态

相关

实例仪表盘 · Flow Queue · 无人值守运行