feat(worker): IO Worker 分道(WK-1)
io worker 进程内按任务声明的 lane 分文件 / 网络 / 维护三条道,各自并发(缺省 2/4/1)、 各自排队;维护道在文件道或网络道有排队/运行时让路(连续 10 分钟放行一个),调度器内联的 清理/回填/保留期裁剪也走维护道。并发在 设置 → 自动化 → 高级 热生效,env 覆盖;旧 WORKER_CONCURRENCY 映射到网络道。运行状态页按道显示运行中/并发/排队。归属表写进 docs/runbook/dev.md,ci 与注册表逐项核对。 Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
68f53390f6
commit
da33cad81d
38 files changed
+1240
-105
No files matched your search
@@ -3,7 +3,7 @@ import denoJson from "../deno.json" with { type: "json" };
|
||||
import type { Config } from "./config.ts";
|
||||
import type { MappingExport } from "./ops.ts";
|
||||
|
||||
// api / worker / worker:agent / all 是常驻角色(worker = io 组:除 runAgent/resolveDecision 外的任务 + outbox 中继 +
|
||||
// api / worker / worker:agent / all 是常驻角色(worker = io 组:文件 / 网络 / 维护三条道 + outbox 中继 +
|
||||
// 模块后台循环;worker:agent = 只跑 Agent 会话任务;all = api + 两组 worker 同进程);其余是容器入口 / 备份恢复脚本用的一次性子命令:
|
||||
// migrate | preflight | probe
|
||||
// export-mappings --out <file.json> [--compare <基准清单.json>] 映射清单导出(可与基准比行数)
|
||||
@@ -77,6 +77,7 @@ const { SERVER_MODULES } = await import("./modules/index.ts");
|
||||
const { diffCounts, enableReadOnlyReconcile, exportMappings, writeMappingExport } = await import("./ops.ts");
|
||||
const { auditStorageWarnings, checkStorage, loadMountedPaths, runPreflight } = await import("./preflight.ts");
|
||||
const { startWorker } = await import("./worker/index.ts");
|
||||
const { laneOverridesFromEnv } = await import("./worker/lanes.ts");
|
||||
|
||||
let config: Config;
|
||||
try {
|
||||
@@ -253,9 +254,10 @@ if (role === "worker" || role === "worker:agent" || role === "all") {
|
||||
modules: SERVER_MODULES,
|
||||
setRelay: outbox.setRelay,
|
||||
group: role === "all" ? "split" : role === "worker" ? "io" : "agent",
|
||||
taskNames: booted.tasks.names(),
|
||||
concurrency: config.WORKER_CONCURRENCY,
|
||||
tasks: booted.tasks.all(),
|
||||
agentConcurrency: config.WORKER_AGENT_CONCURRENCY,
|
||||
// 三条道的并发读 设置 → 自动化 → 高级(热生效);环境变量设了就覆盖(旧 WORKER_CONCURRENCY → 网络道)
|
||||
lanes: { overrides: laneOverridesFromEnv(config) },
|
||||
},
|
||||
});
|
||||
stops.push(worker.stop);
|
||||
|
||||
Reference in new issue
Block a user