- 任务
- task.run
调用一个已注册任务,并按失败策略重试或继续。
A3S Flow 1.0 提供 18 个可以直接放到画布上的节点。选好节点以后,你可以在 Playground 中填写配置、连接端口并校验整张图,也可以通过 CLI 生成相同结构。每个节点的字段、默认值、端口、运行绑定和持久身份规则都来自同一份 manifest。
iteration-start 与 loop-start 是容器内部入口。它们由编辑器随容器创建,不出现在节点选择器中,也不能放到顶层画布。
下面的工作台使用 @a3s-lab/flow-ui 的公开组件。选择一个节点后,画布卡片和右侧配置面板会读取同一个节点对象。标题、说明和字段修改会立即反映到预览中。等待、回调、批次、子工作流和容器使用各自的专用控件。
选择节点后可以直接修改配置。画布卡片、字段表单、端口说明和最终 DSL 使用同一份节点清单。
调用一个已注册任务,并按失败策略重试或继续。
incontrol · FlowControlinputdata · JsonValuesuccesscontrol · FlowControlresultdata · JsonValuefailedcontrol · FlowControlerrordata · StringresultStepResulterrorStepErrorstep_name默认值task.run
_input_typeStrInputdisplay_name任务名称info填写执行端已经注册的任务标识,例如 task.run。namestep_nameoptions—placeholdertool.executerequiredtruetable_schema—typestrui_groupexecutionui_group_label执行内容valuetask.runinput默认值{"apiVersion":"a3s.dev/flow-expression/v1","expression":{"op":"field","path":"input"}}
_input_typeA3SFlowExpressionInputdisplay_name任务输入expression_purposeinputinfo选择要传给任务的数据。input_types["FlowValue"]nameinputoptions—placeholder—table_schema—typedictui_groupexecutionui_group_label执行内容value{"apiVersion":"a3s.dev/flow-expression/v1","expression":{"op":"field","path":"input"}}max_attempts默认值3
_input_typeIntInputadvancedtruedisplay_name最多尝试次数info包含第一次执行。填 1 表示失败后不重试。namemax_attemptsoptions—placeholder—range_spec{"min":1,"max":100,"step":1}requiredtruetable_schema—typeintui_groupretry-policyui_group_label失败与重试value3retry_delay_ms默认值0
_input_typeIntInputadvancedtruedisplay_name重试间隔(毫秒)info两次尝试之间等待多久。填 0 表示立即重试。nameretry_delay_msoptions—placeholder—range_spec{"min":0,"max":86400000,"step":100}requiredtruetable_schema—typeintui_groupretry-policyui_group_label失败与重试value0on_exhausted默认值fail_run
_input_typeDropdownInputadvancedtruedisplay_name尝试次数用完后info可以结束整个工作流,也可以进入失败分支继续处理。nameon_exhaustedoptions[{"label":"结束工作流并标记失败","value":"fail_run"},{"label":"进入失败分支","value":"continue_workflow"}]placeholder—requiredtruetable_schema—typestrui_groupretry-policyui_group_label失败与重试valuefail_run收到输入以后要执行一次宿主任务,使用执行任务。同一批任务需要按成员保存结果和重试状态,使用批量任务。两者都要求宿主注册真实任务处理器。
流程需要停下来等某个时间,使用定时等待。等待审批或一次回调,使用回调与审批。已经有业务消息通道,只需要按名称恢复运行,使用信号等待。这三个节点都会释放 Worker。
一项工作需要自己的历史、状态和取消策略,使用子工作流。需要对一组输入重复执行相同子图,使用遍历集合。重复次数由条件决定,使用条件循环。普通连线仍然保持无环。
有 runtimeBinding 的节点会编译成 A3S Flow 的持久运行命令。flow.start 和 flow.condition 在图执行层处理。iteration 与 loop 负责子画布结构,宿主决定如何把每轮工作编译成步骤或子工作流。
任务和等待类节点通常使用图节点 ID 作为持久身份。批量节点还会把成员 key 加入身份。已有运行开始后,修改这些 ID 会让重放无法匹配原历史。
每个节点的独立页面都列出以下内容。
先按错误路径找到节点和字段。字段错误通常来自必填值为空、数字超出范围或条件字段没有同步更新。连线错误通常来自端口类型不匹配、输入端口已经占用、跨越容器作用域或形成环路。
不要通过删除未知字段来压下错误。先在节点独立页面核对字段和端口,再回到 Playground 或 CLI 重新校验。已有运行开始以后,还要保留节点 ID。步骤、Hook、进度和子运行会用它匹配已经提交的历史。
安装包中的清单与前端组件一起发布。先查看当前版本,再创建节点。
把节点加入图后,运行 validate、compile 和 digest。CLI 会检查字段、端口、作用域、环路和确定性执行顺序。