0.12.0 API 参考
本页对应 Git 标签 v0.12.0。完整签名见 docs.rs 0.12.0。
功能开关
FlowEngine
构造入口包括 in_memory()、new(store, runtime) 和 builder(runtime)。构建器支持存储、观察者、RuntimeBuildCompatibility 与最大重放次数。
start_with_id() 在运行 ID、定义和输入相同时幂等。不同内容返回 RunConflict。
FlowRuntime
WorkflowInvocation 保存运行 ID、定义、输入和历史,并通过 context() 创建辅助视图。StepInvocation 保存运行 ID、步骤 ID、处理器名、输入和历史。
上下文读取
没有信号、第一类子运行、续段和补丁读取方法。
运行时命令
0.12.0 的 RuntimeCommand 变体是完整封闭集合。
重试
RetryPolicy::none() 只执行一次。RetryPolicy::fixed(max_attempts, delay) 使用固定等待。continue_workflow_on_failure() 将耗尽状态留给工作流处理。
StepCommand::new() 与 with_retry() 构造批次成员。这个版本没有指数退避类型。
定义和快照
WorkflowSpec 包含名称、定义版本和 RuntimeSpec,并可通过 with_runtime_build() 固定 RuntimeBuildId。RuntimeBuildCompatibility 描述 Worker 可接受版本。
WorkflowRunSnapshot 汇总 WorkflowRunStatus、步骤、等待、Hook、取消、进度、外部子操作和 WorkflowTerminalOutcome。子投影包括 StepSnapshot、WaitSnapshot、HookSnapshot 和 ScheduledWakeup。
HookMetadata 与 HookCallbackRoute 是回调审计和宿主路由元数据。它们不会创建 HTTP 服务。
存储
FlowEventStore 要求追加、预期序号追加、按序完整读取和运行枚举。活动 Hook 和定时唤醒有公开查询契约。
SQL 后端在 connect() 时迁移。0.12.0 没有独立 PostgreSQL 迁移或只验证构造器。
调度与任务
FlowScheduler 提供 next_wakeup()、next_wakeup_delay() 和 enqueue_due_work()。FlowSchedulerTick 返回到期等待、到期重试和派发数量。
任务层公开 FlowTask、FlowTaskDispatcher、FlowTaskQueue、FlowTaskLease、FlowTaskOutcome 和 FlowWorker。
内置队列包括 InMemoryFlowTaskQueue、LocalFileFlowTaskQueue 和可选 PostgresFlowTaskQueue。RuntimeBuildTaskRouter 按固定版本选择派发器。BootFlowTaskManager 需要 boot 功能。
观察
FlowEventObserver 接收提交后的事件。公开实现和适配器包括 NoopFlowEventObserver、InMemoryFlowEventObserver、FanoutFlowEventObserver、LocalFileA3sFlowEventSink、A3sFlowEventBridge 和内存 Sink。
观察结果不能反向决定工作流状态。运行 ID 和 Hook 令牌不适合作为指标标签。
原生 TypeScript
NativeTsRuntime 支持输出上限、编译超时、调用超时和 preflight()。0.12.0 没有 NativeTsDependencyMode、编译器能力协议或依赖清单类型。
宿主提供的编译器必须接受 compile <entrypoint> -o <artifact>,制品接受 --a3s-flow-runtime 并通过标准输入输出交换 JSON。
错误分类
身份、重放和版本错误需要修正配置或代码,不能当作普通暂时故障无限重试。
