执行与推进全景:run / submit × local / cloud

执行与推进全景:run / submit × local / cloud 由 Archify 生成的工作流图。 01 / 本机后端(local) 02 / 同一份 core(四种组合共用) 03 / 无状态推一步 04 / 云端后端(cloud) 入口与承载进程 驱动循环:每批事件推进一步 重放与收敛 本机后台进程 · submit 派生 · 可被接力 · 本机后端(local) › 入口与承载进程 本机后台进程 submit 派生 · 可被接力 本机 worker · 子进程 · 本机后端(local) › 驱动循环:每批事件推进一步 本机 worker 子进程 事件通道 · 专用通道,不落盘 · 本机后端(local) › 驱动循环:每批事件推进一步 事件通道 专用通道,不落盘 本机事件库 · 旁路原样落库 · 本机后端(local) › 重放与收敛 本机事件库 旁路原样落库 命令入口 · 解析 · 分组 · 落定义 · 同一份 core(四种组合共用) › 入口与承载进程 命令入口 解析 · 分组 · 落定义 前台在线循环 · 全程在线接收 · 同一份 core(四种组合共用) › 驱动循环:每批事件推进一步 前台在线循环 全程在线接收 起 worker · 每 scope 一个,并发闸门 · 同一份 core(四种组合共用) › 驱动循环:每批事件推进一步 起 worker 每 scope 一个,并发闸门 退出观察者 · 观察 worker 终止 · 同一份 core(四种组合共用) › 驱动循环:每批事件推进一步 退出观察者 观察 worker 终止 收敛与提交点 · 一次落定终态 · 同一份 core(四种组合共用) › 重放与收敛 收敛与提交点 一次落定终态 无状态推一步 · 重放 · 条件写抢占 job · 无状态推一步 › 驱动循环:每批事件推进一步 无状态推一步 重放 · 条件写抢占 job 云端推进函数 · 提交与事件均可唤醒 · 云端后端(cloud) › 入口与承载进程 云端推进函数 提交与事件均可唤醒 云端 worker · 云上任务 · 云端后端(cloud) › 驱动循环:每批事件推进一步 云端 worker 云上任务 云端事件表 · 逐条写入表 · 云端后端(cloud) › 驱动循环:每批事件推进一步 云端事件表 逐条写入表 事件表流 · 写入即触发 · 云端后端(cloud) › 重放与收敛 事件表流 写入即触发 反复推至收敛 云端:平台记录 逐条事件 每批事件推一步 云端:起云上任务 本机:起子进程 有退出记录才收敛 在线派发 本机:父进程 逐条事件 前台:在线消费 后台:旁路落库 run 抢占后派发 全量重放定终态 唤醒推进至收敛 submit:落库即返回 前台:分段轮询 每批写入 图例 命令入口 驱动与执行 退出观察 派发 worker 事件载体 云端推进函数 worker:子进程 或 云端任务

同一份 core,四种组合只换注入件

  • • 解析 · 分组(plan 到此为止)· 投影 · 判定:四种组合(执行方式 × 执行后端)共用一份代码
  • • 差别只在注入件:执行的承载进程、事件读取通道、job 的启动方式、退出观察者

两处常见误读

  • • status --wait 两个后端不同:本机 per-run 进程已终止时接力者才是唯一推进器(退出它 run 即停滞,per-run 仍在则两者并存),云端仅在检测到停滞时唤醒推进函数、之后无需在线
  • • 退出码由父进程 / 平台观察得到,不由 worker 上报