statefulflow - 接口参考
1、有状态流引擎(StatefulFlowEngine)
是在 FlowEngine 的基础上,增加了“包装性”的接口。也兼容无状态(通过 context.getInstanceId()
是否为空来区别)。
主要实现有:StatefulFlowEngineDefault
返回数据类型 | 描述 | |
---|---|---|
getDriver() | StatefulFlowDriver | 获取驱动器 |
clearState(context) | 清空状态 |
- 强制单步前进或后退
返回数据类型 | 描述 | |
---|---|---|
stepForward(chainId, context) | StatefulNode | 单步前进 |
stepForward(chain, context) | StatefulNode | 单步前进 |
stepBack(chainId, context) | StatefulNode | 单步后退 |
stepBack(chain, context) | StatefulNode | 单步后退 |
可以使用 BlockStateController 或 ActorStateController 。
- 有参与者的活动获取与提交
返回数据类型 | 描述 | |
---|---|---|
getActivityNodes(chainId, context) | Collection<StatefulNode> | 获取多个活动节点 |
getActivityNodes(chain, context) | Collection<StatefulNode> | 获取多个活动节点 |
getActivityNode(chainId, context) | StatefulNode | 获取当前活动节点 |
getActivityNode(chain, context) | StatefulNode | 获取当前活动节点 |
getActivityNode(chain, context) | StatefulNode | 获取当前活动节点 |
postActivityStateIfWaiting(context, chainId, activityNodeId, state) | boolean | 提交活动状态,并作参与者状态确认 |
postActivityStateIfWaiting(context, activity, state) | boolean | 提交活动状态,并作参与者状态确认 |
postActivityState(context, chainId, activityNodeId, state) | boolean | 提交活动状态 |
postActivityState(context, activity, state) | boolean | 提交活动状态 |
需要使用 ActorStateController 配套。
@Configuration
public class DemoCom {
//替换掉默认的引擎实例
@Bean
public StatefulFlowEngine flowEngine() {
return StatefulFlowEngine.newInstance(StatefulSimpleFlowDriver.builder()
.stateController(new ActorStateController())
.build());
}
}
2、有状态流驱动器(StatefulFlowDriver),可自由定制
public interface StatefulFlowDriver extends FlowDriver {
/**
* 获取状态仓库
*/
StateRepository getStateRepository();
/**
* 获取状态控制器
*/
StateController getStateController();
/**
* 提交处理任务
*
* @param context 流上下文
* @param task 任务
*/
void postHandleTask(FlowContext context, Task task) throws Throwable;
}
主要实现有:StatefulSimpleFlowDriverr