flow - 流程引擎接口参考
2026年1月13日 下午9:11:02
图的流动由“流程引擎”驱动的,也称为:执行。“流程引擎”在执行图时,会涉及到“上下文”(提供执行时的上下文参数与对象引用),以及可以定制的“流程驱动器”。
1、 流程引擎(FlowEngine)
| 返回数据类型 | 描述 | |
|---|---|---|
FlowEngine.newInstance() | FlowEngine | 实例化引擎 |
FlowEngine.newInstance(driver) | FlowEngine | 实例化引擎(指定默认驱动器) |
getDriver(graph)->FlowDriver | 获取图的驱动器 | |
addInterceptor(interceptor, index) | 添加拦截器 | |
addInterceptor(interceptor) | 添加拦截器 | |
removeInterceptor(interceptor) | 移除拦截器 | |
register(name, driver) | 注册驱动器 | |
register(driver) | 注册默认驱动器 | |
unregister(name) | 注销图驱动器 | |
load(graphUri) | 加载图(支持 * 号表达式批量加载) | |
load(graph) | 加载图 | |
unload(graphId) | 卸载图 | |
getGraphs() | Collection<Graph> | 获取所有图 |
getGraph(graphId) | Graph | 获取图 |
getGraphOrThrow(graphId) | Graph | 获取图,没有则异常 |
eval(graphId) | 执行图 | |
eval(graphId, context) | 执行图 | |
eval(graphId, steps, context) | 执行图 | |
eval(graphId, steps, context, options) | 执行图 | |
eval(graph) | 执行图 | |
eval(graph, context) | 执行图 | |
eval(graph, steps, context) | 执行图 | |
eval(graph, steps, context, options) | 执行图 |
主要实现有:
- FlowEngineDefault(默认实现)
2、流上下文接口(FlowContext)
| 返回数据类型 | 描述 | |
|---|---|---|
+of() | 获取上下文实例 | |
+of(instanceId) | 获取上下文实例 | |
+fromJson() | String | 从 josn 加载 |
getInstanceId() | 实例id | |
toJson() | String | 转为 josn |
lastNodeId() | String | 最后执行的节点Id |
lastRecord() | String | 最后执行的节点记录 |
trace() | String | 执行跟踪 |
interrupt() | 中断(当前分支不再前进) | |
stop() | 停止并返回(整个流不再前进) | |
isStopped() | 是否已停止 | |
eventBus() | DamiBus<C, R> | 当前实例事件总线 |
model() | Map | 参数集合 |
put(key, value) | self | 推入参数 |
putIfAbsent(key, value) | self | 没有时推入参数 |
putAll(model) | self | 推入参数集合 |
get(key) | Object | 获取参数 |
getAs(key) | T | 获取参数 |
getOrDefault(key, def) | T | 获取参数或默认 |
remove(key) | T | 移除参数 |
computeIfAbsent(key, mappingFunction) | T | 没有时完成参数 |
条件或脚本任务应用时:
- FlowContext 实例在脚本里的变量名为:
context - 所有 model 里参数,会成为脚本里的变量(直接可用)
3、流程驱动器接口(FlowDriver),可自由定制
| 方法 | 返回数据类型 | 描述 |
|---|---|---|
onNodeStart(exchanger, node) | 节点开始时 | |
onNodeEnd(exchanger, node) | 节点结束时 | |
handleCondition(exchanger, condition) | bool | 处理条件检测 |
handleTask(exchanger, task) | 处理执行任务 | |
postHandleTask(exchanger, task) | 提交处理任务(有些场景,需要二次控制) |
主要实现有:
- SimpleFlowDriver(简单流程驱动器)