用途:为运行中的 DAG 执行提供集中式状态管理,实现启动、停止、暂停、恢复和清理控制,并支持优雅关闭。适用于实现执行启停控制、进程优雅终止(SIGTERM 升级到 SIGKILL)、跟踪系统内活跃执行、清理孤儿进程、实现带成本跟踪的中止处理器。不适用于成本估算或定价计算、构建或修改 DAG 结构、技能匹配或选择、进程生成(应直接使用执行器)。
核心模式:优雅关闭始终先用 SIGTERM,超时后再升级为 SIGKILL(示例中 GRACEFUL_TIMEOUT_MS 为 2000);使用 AbortController 传播取消信号,将 signal 传给子执行器,调用 abort() 中止所有子任务;使用执行注册表跟踪活跃执行,记录 executionId、状态、起止时间等。
状态机:idle → running → paused → running(resume)→ stopping(过渡 2-10 秒)→ stopped 或 failed。
API 设计:停止接口返回 StopResponse,包含 status、executionId、reason(如 user_abort、timeout、error、server_shutdown)、finalCostUsd、stoppedAt 以及节点完成/失败/总数和耗时的 summary。服务器关闭时监听 SIGINT,优雅停止所有活跃执行后再关闭服务。
反模式:只用 SIGKILL 会使进程无法刷盘、关闭连接、释放锁或保存进度;缺少中止信号传播会导致子进程成为孤儿、资源泄漏、成本持续累积;同步停止处理器不可取,停止是异步的,需等待清理完成后返回 Promise 与最终状态。
集成点:ExecutionManager 跟踪执行并协调停止;DAGExecutor 持有 AbortController 并编排执行波次;ProcessExecutor 生成进程并处理 SIGTERM/SIGKILL;/api/execute/stop 提供 HTTP 停止接口。Unix 信号处理细节参见 /references/process-signals.md。