RFC-006 Phase 3: Migrate Workflow Manager process logic → WorkerRuntime #282

Closed
opened 2026-04-30 12:53:04 +00:00 by xiaomo · 0 comments
Owner

目标

workflow-manager.ts 提取进程管理到 WorkerRuntime,workflow-manager 只保留业务逻辑。

变更范围

  • workflow-manager.ts 大幅瘦身
  • 进程 fork/crash/drain 部分委托给 WorkerRuntime

具体任务

  1. workflow-manager 内部用 WorkerRuntime<string> 管理 per-workflow worker 进程
  2. 删除 workflow-manager 中的:fork 逻辑、crash 计数、stderr 捕获、drainAndRespawn 进程部分
  3. 保留 workflow-manager 中的:thread 跟踪、并发控制、queue/drop overflow、drainWhenIdle 协调、resume from log
  4. drainWhenIdle 内部调用 runtime.drain(workflowName) 而非自己管 shutdown
  5. crash respawn 回调中保留 thread cleanup 逻辑

验证步骤

  • workflow-manager.ts 行数显著减少(目标 < 500 行,从 792 行)
  • 进程管理代码不再出现在 workflow-manager 中
  • workflow 相关测试全部通过(workflow-manager, crash-recovery, hot-reload 等)
  • hot reload: workflow 文件变更 → drainWhenIdle → drain+respawn 正常
  • pnpm run build + pnpm test 通过

Ref: #279

## 目标 从 `workflow-manager.ts` 提取进程管理到 WorkerRuntime,workflow-manager 只保留业务逻辑。 ## 变更范围 - `workflow-manager.ts` 大幅瘦身 - 进程 fork/crash/drain 部分委托给 WorkerRuntime ## 具体任务 1. workflow-manager 内部用 `WorkerRuntime<string>` 管理 per-workflow worker 进程 2. 删除 workflow-manager 中的:fork 逻辑、crash 计数、stderr 捕获、drainAndRespawn 进程部分 3. 保留 workflow-manager 中的:thread 跟踪、并发控制、queue/drop overflow、drainWhenIdle 协调、resume from log 4. `drainWhenIdle` 内部调用 `runtime.drain(workflowName)` 而非自己管 shutdown 5. crash respawn 回调中保留 thread cleanup 逻辑 ## 验证步骤 - [ ] `workflow-manager.ts` 行数显著减少(目标 < 500 行,从 792 行) - [ ] 进程管理代码不再出现在 workflow-manager 中 - [ ] workflow 相关测试全部通过(workflow-manager, crash-recovery, hot-reload 等) - [ ] hot reload: workflow 文件变更 → drainWhenIdle → drain+respawn 正常 - [ ] `pnpm run build` + `pnpm test` 通过 Ref: #279
This repo is archived. You cannot comment on issues.
No Label
1 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/nerve#282