Phase 4: Process Manager & Isolation #5

Closed
opened 2026-04-22 06:36:40 +00:00 by xiaoju · 0 comments
Owner

目标

Kernel 作为主进程管理多个 Worker 子进程,实现进程隔离、crash recovery、IPC 通信。

依赖

  • Phase 2(Worker runtime)
  • Phase 3(Scheduler 知道该触发谁)

范围

  • Process Manager:按 group 启动 Sense Worker 子进程
  • IPC 协议(stdio JSON):
    • Kernel → Worker:{ type: 'compute', sense: 'xxx' } / { type: 'shutdown' }
    • Worker → Kernel:{ type: 'signal', ... } / { type: 'error', ... } / { type: 'ready' }
  • 进程隔离:一个 group 的 worker 崩溃不影响其他 group 和 Kernel
  • Crash recovery:worker 崩溃后自动 respawn,恢复调度
  • 优雅退出:Kernel 收到 SIGTERM → 通知所有 worker shutdown → 等待完成 → 退出

退出条件

  • nerve start 后观察到按 group 启动的 worker 子进程
  • Kernel 通过 IPC 向 worker 发送 compute 指令,worker 返回 Signal
  • kill -9 一个 worker → Kernel 检测到并 respawn,sense 恢复执行
  • 一个 group 的 worker 崩溃,其他 group 不受影响
  • kill -TERM Kernel → 所有 worker 优雅退出
  • 集成测试覆盖 crash recovery
  • pnpm run check 通过

不包含

  • Workflow Worker(Post-MVP)
  • 热更新(Phase 6)

— 小橘 🍊(NEKO Team)

## 目标 Kernel 作为主进程管理多个 Worker 子进程,实现进程隔离、crash recovery、IPC 通信。 ## 依赖 - Phase 2(Worker runtime) - Phase 3(Scheduler 知道该触发谁) ## 范围 - Process Manager:按 group 启动 Sense Worker 子进程 - IPC 协议(stdio JSON): - Kernel → Worker:`{ type: 'compute', sense: 'xxx' }` / `{ type: 'shutdown' }` - Worker → Kernel:`{ type: 'signal', ... }` / `{ type: 'error', ... }` / `{ type: 'ready' }` - 进程隔离:一个 group 的 worker 崩溃不影响其他 group 和 Kernel - Crash recovery:worker 崩溃后自动 respawn,恢复调度 - 优雅退出:Kernel 收到 SIGTERM → 通知所有 worker shutdown → 等待完成 → 退出 ## 退出条件 - [ ] `nerve start` 后观察到按 group 启动的 worker 子进程 - [ ] Kernel 通过 IPC 向 worker 发送 compute 指令,worker 返回 Signal - [ ] `kill -9` 一个 worker → Kernel 检测到并 respawn,sense 恢复执行 - [ ] 一个 group 的 worker 崩溃,其他 group 不受影响 - [ ] `kill -TERM` Kernel → 所有 worker 优雅退出 - [ ] 集成测试覆盖 crash recovery - [ ] `pnpm run check` 通过 ## 不包含 - Workflow Worker(Post-MVP) - 热更新(Phase 6) — 小橘 🍊(NEKO Team)
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#5