编排器¶
TinyOrch — 在 TinyBench 上编排处理流程
TinyOrch 管理「步骤序列」。每步从 TinyBench 工作台取数据→调工具→放回工作台。支持预定义流程,也支持 MQTT 远程动态编排。
架构速览¶
-
流程定义 Flow Definition
命名流程 + 有序步骤
create(flow)/step(flow, idx, src, tool, dst)
编译时类型校验 — 定义时检查 src 类型匹配 tool -
执行引擎 Execution Engine
go(flow)— 按序执行所有步骤
run(src, tool, dst)— 临时单步
某步失败立即终止,返回错误码 + 已执行步数 -
流程状态机 State Machine
CREATED → DEFINED → RUNNING → DONE / ERROR
status(flow)— 实时查询流程状态
清晰的错误可追溯性 -
MQTT 远程编排
ORCH,CREATE/ORCH,STEP/ORCH,GO
用户或 Agent 通过 MQTT 远程构建和执行流程
响应发布到/mqtt/node
快速开始¶
#include "tiny_bench.h"
#include "tiny_orch.h"
tiny_bench_t bench;
tiny_bench_init(&bench);
// ... 注册工具、放数据 ...
tiny_orch_t orch;
tiny_orch_init(&orch, &bench);
// 定义流程
tiny_orch_create(&orch, "daily_scan");
tiny_orch_step(&orch, "daily_scan", 0, "raw_0", "butterworth", "filtered");
tiny_orch_step(&orch, "daily_scan", 1, "filtered","fft", "spectrum");
// 执行
tiny_orch_go(&orch, "daily_scan"); // 按序执行 0→1
TinyBench + TinyOrch 协作¶
TinyBench: 数据槽(raw_0, filtered, ...) + 工具注册表(butterworth, fft, ...)
↕ 读取 ↕ 调用
TinyOrch: 步骤0: raw_0 → butterworth → filtered
步骤1: filtered → fft → spectrum
↕ 写入
TinyBench: 数据槽更新(filtered, spectrum 有数据了)