🎈LiteflowResponse对象
在执行器返回中,用的最多的就是返回一个LiteFlowResponse
对象。
这个对象里面包含了很多结果数据和过程数据。
# 流程执行是否成功
你可以通过以下方法来判断一个流程是否执行成功:
LiteflowResponse response = flowExecutor.execute2Resp("chain1", 初始参数, CustomContext.class);
boolean isSuccess = response.isSuccess();
# 获取异常信息
如果一个流程isSuccess为false,则必然有异常信息,你可以通过以下方法来获得异常:
LiteflowResponse response = flowExecutor.execute2Resp("chain1", 初始参数, CustomContext.class);
if (!response.isSuccess()){
Exception e = response.getCause();
}
关于异常的解释请详细查看异常这一章节。
# 获得执行步骤详细信息
结果信息中也封装了流程执行每一步的详细信息,你可以通过这个方法来获取:
LiteflowResponse response = flowExecutor.execute2Resp("chain1", 初始参数, CustomContext.class);
Map<String, CmpStep> stepMap = response.getExecuteSteps();
你也可以通过这样的方式也取到一个队列:
LiteflowResponse response = flowExecutor.execute2Resp("chain1", 初始参数, CustomContext.class);
Queue<CmpStep> stepQueue = response.getExecuteStepQueue();
关于这上面2个方法的区别和步骤信息的详细请参考步骤信息。
# 上下文数据
流程在执行过程中,会对上下文数据进行读写操作。一个流程的返回数据也应当包含在上下文中。
你获得了LiteFlowResponse
对象之后,可以这样获得上下文Bean:
LiteflowResponse response = flowExecutor.execute2Resp("chain1", 初始参数, CustomContext.class);
CustomContext context = response.getContextBean(CustomContext.class);
//对于只有一个上下文的response来说,用下面这句也是等价的
//CustomContext context = response.getFirstContextBean();
对于多上下文来说,也是一样的用法:
LiteflowResponse response = flowExecutor.execute2Resp("chain1", 初始参数, OrderContext.class, UserContext.class);
OrderContext orderContext = response.getContextBean(OrderContext.class);
UserContext userContext = response.getContextBean(UserContext.class);
# 获得步骤字符串信息
获得一个简单易懂的组件步骤的字符串拼装信息:
LiteflowResponse response = flowExecutor.execute2Resp("chain1", 初始参数, CustomContext.class);
String stepStr = response.getExecuteStepStrWithTime();
这个字符串打印出来结果如下:
a[组件A]<201>==>b[组件B]<300>==>m[组件M]<1205>
这里的表达形式为组件ID[组件别名]<耗时毫秒>
。关于如何设置组件别名可以参考组件别名。
同时,response对象里还提供了getExecuteStepStrWithoutTime
这个方法,用于返回不带有耗时时间的步骤字符串。
提示
事实上,在每一个流程执行结束后,框架会自动打印这个步骤字符串,所以无需你自己获取打印。
这里只是说明如何获取,如果你要持久化下来,可以这样获取。
帮助我们改善此文档 (opens new window)
上次更新: 2022/10/07, 00:22:18