LiteFlow LiteFlow
💒首页
  • v2.13.2(当前版本)
  • What's New

    • 🌈What' s New In LiteFlow v2.13.2?
  • 历史版本

    • v2.12.X
    • v2.11.X
    • v2.10.X
    • v2.9.X
    • v2.8.X
  • 升级指南

    • 🌈2.13.0升级指南
    • 2.12.4升级指南
    • 2.12.0升级指南
    • 升级到2.9.3说明
    • 升级到2.9.X说明
    • 升级到2.8.X说明
    • 升级到2.7.X说明
👑LF CLUB社区
  • 常见问题
  • 专题解释

    • 如何理解上下文这个概念?
    • Slot是一个什么样的概念,在框架中起到什么样的作用?
💖赞助
🧩插件
🔥PPT
  • 项目介绍
  • 项目成员
  • 更新记录
  • 参与开发
👥加入群聊
🧤谁在使用
  • Gitee (opens new window)
  • GitCode (opens new window)
  • Github (opens new window)

广告采用随机轮播方式显示 ❤️成为赞助商
💒首页
  • v2.13.2(当前版本)
  • What's New

    • 🌈What' s New In LiteFlow v2.13.2?
  • 历史版本

    • v2.12.X
    • v2.11.X
    • v2.10.X
    • v2.9.X
    • v2.8.X
  • 升级指南

    • 🌈2.13.0升级指南
    • 2.12.4升级指南
    • 2.12.0升级指南
    • 升级到2.9.3说明
    • 升级到2.9.X说明
    • 升级到2.8.X说明
    • 升级到2.7.X说明
👑LF CLUB社区
  • 常见问题
  • 专题解释

    • 如何理解上下文这个概念?
    • Slot是一个什么样的概念,在框架中起到什么样的作用?
💖赞助
🧩插件
🔥PPT
  • 项目介绍
  • 项目成员
  • 更新记录
  • 参与开发
👥加入群聊
🧤谁在使用
  • Gitee (opens new window)
  • GitCode (opens new window)
  • Github (opens new window)
  • 🍤LiteFlow简介
  • 🍓项目特性
  • 🧁环境支持

  • 🍟快速开始(Hello world)

  • 🍢配置项

  • 🔗组件

  • 🧩EL规则

  • 🌮上下文

  • 🛩执行器

  • 🍋脚本组件

  • 🗂规则配置源

  • 🍼元数据管理

  • 🌌异步中的线程池

  • 🎲动态构造

  • 🧮决策路由

  • 😸生命周期

  • 🎨高级特性

    • 🍌本地规则文件监听
    • 🥠组件降级
    • 🍑组件别名
    • 🥝组件事件回调
    • 🐋组件回滚
    • 🥑隐式子流程
    • 🍕私有投递
    • 🍪组件切面
    • 🍡步骤信息
      • 基本应用
      • 设置自定义步骤信息
    • 🧊异常
    • 🧇打印信息详解
    • 🧁自定义请求Id
    • 🫕快速解析模式
    • 🌭不同格式规则加载
    • 🍿自定义组件执行器
    • 🍥简单监控
    • 🧉XML的DTD
  • ⛱测试用例以及示例

  • 🪂性能表现
  • v2.13.X文档
  • 🎨高级特性
铂赛东
2022-07-03
目录

🍡步骤信息

LiteFlow为执行的过程提供了详细的步骤信息。

# 基本应用

获取一条流程执行的步骤信息是通过LiteflowResponse对象来获取的:

LiteflowResponse response = flowExecutor.execute2Resp("chain1", "初始参数", CustomContext.class);
Map<String, CmpStep> stepMap = response.getExecuteSteps();
//或者你也可以通过以下的语句来获得一个步骤队列
Queue<CmpStep> stepQueue = response.getExecuteStepQueue();

以上这2个方法的区别是:

提示

获得Map返回值的那个方法,如果有多个相同的组件,那么以上这个方法获得的Map中这个组件id的value是最终的那个步骤信息。

而获得Queue<CmpStep>这个返回值的方法,返回值里包含了所有的步骤信息,相同的组件在规则里定义n次,那么这里也有n个步骤。

在CmpStep这个对象里,你可以通过以下方法获得你要的数据:

  • isSuccess:此组件是否执行成功
  • getNodeId:获得组件Id
  • getNodeName:获得组件名称
  • getTag:获得组件标签值
  • getTimeSpent:获得组件的耗时,单位为毫秒
  • getStepData:获得自定义step信息(从v2.13.0开始支持)
  • getThreadName:获得运行threadName信息(从v2.13.0开始支持)
  • getStartTime:获取组件开始执行的时间,为Date对象(从v2.11.4开始支持)
  • getEndTime:获取组件结束执行的时间,为Date对象(从v2.11.4开始支持)
  • getException:获取此组件抛出的异常,如果isSuccess为false的话。但是这里要注意下:有exception,success一定为false,但是success为false,不一定有exception,因为有可能没执行到,或者没执行结束(any的情况)。

提示

如果你的某一个组件抛出了异常,在默认配置情况下,流程会中断。那么response.getCause()和相应组件步骤里的exception都是一致的。且没执行的组件不会有相应步骤信息。

# 设置自定义步骤信息v2.13.0+

你可以在组件里设置自定义步骤信息:

@LiteflowComponent("a")
public class ACmp extends NodeComponent {

	@Override
	public void process() {
		this.setStepData("step_a");
	}
}

这样你就可以在LiteflowResponse对象中拿到每个step对象中拿到stepData信息:

response.getExecuteStepQueue().forEach(
        cmpStep -> System.out.println(cmpStep.getStepData())
);

这个特性的意义在于,你可以监控上下文中的某一个数据在经过每个组件时的变化数据。比如上下文中一个count属性,每经过一个组件+1。

那么你最终拿到的step队列中,你可以清楚的看到当时这个step中的count属性数据是多少。

帮助我们改善此文档 (opens new window)
上次更新: 2025/02/22, 13:47:36
🍪组件切面
🧊异常

← 🍪组件切面 🧊异常→

Theme by Vdoing | Copyright © 2020-2025 铂赛东 | MIT License
沪ICP备18012955号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式