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

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

    • v2.9.X
    • v2.8.X
    • v2.7.X
    • v2.6.X
  • 升级指南

    • 升级到2.9.3说明
    • 升级到2.9.X说明
    • 升级到2.8.X说明
    • 升级到2.7.X说明
❓问答
💖赞助
🧩插件
🔥PPT
  • 项目介绍
  • 项目成员
  • 更新记录
  • 参与开发
加入群聊
用户
  • TLog-轻量级的分布式日志追踪神器 (opens new window)
  • ERD ONLINE-开箱即用的数据库建模、产品版本管理软件 (opens new window)
  • Forest-更轻量、更简单实用的HTTP客户端框架 (opens new window)
Gitee (opens new window)
Github (opens new window)
  • 简体中文 (opens new window)
  • English (opens new window)
💒首页
  • v2.10.1(当前版本)
  • What's New

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

    • v2.9.X
    • v2.8.X
    • v2.7.X
    • v2.6.X
  • 升级指南

    • 升级到2.9.3说明
    • 升级到2.9.X说明
    • 升级到2.8.X说明
    • 升级到2.7.X说明
❓问答
💖赞助
🧩插件
🔥PPT
  • 项目介绍
  • 项目成员
  • 更新记录
  • 参与开发
加入群聊
用户
  • TLog-轻量级的分布式日志追踪神器 (opens new window)
  • ERD ONLINE-开箱即用的数据库建模、产品版本管理软件 (opens new window)
  • Forest-更轻量、更简单实用的HTTP客户端框架 (opens new window)
Gitee (opens new window)
Github (opens new window)
  • 简体中文 (opens new window)
  • English (opens new window)
  • LiteFlow简介
  • 项目特性
  • 快速开始(Hello world)

    • Springboot场景安装运行

      • 依赖
      • 配置
      • 执行
    • Spring场景安装运行

      • 依赖
      • 配置
      • 执行
    • 其他场景安装运行

      • 说明
      • 依赖
      • 配置
      • 执行
  • 配置项

    • 说明
    • Springboot下的配置项
    • Spring下的配置项
    • 其他场景代码设置配置项
  • 规则文件

    • 规则文件格式
    • 本地规则文件配置
    • ZK规则文件配置
    • 自定义配置源
  • 用代码动态构造规则

    • 说明
    • 如何构造
  • 使用详细指南

    • 开启和关闭
    • 规则文件路径
    • 同步异步编排
    • 执行器
      • 返回类型为LiteflowResponse
      • 返回类型为上下文Bean
      • 返回类型为Future
    • 数据上下文
    • Response对象
    • 普通组件
    • 条件组件
    • 脚本组件
    • 声明式组件
    • 前置后置组件
    • 组件别名
    • 组件标签
    • 组件事件回调
    • 子流程
    • 隐式子流程
    • 私有投递
    • 组件重试
    • 平滑热刷新
    • 组件切面
    • 步骤信息
    • 打印信息详解
    • 不同格式规则加载
    • When异步线程池
    • 自定义组件执行器
    • 简单监控
  • 示例工程

    • 测试用例
    • DEMO案例
  • 性能表现
  • v2.7.X文档
  • 使用详细指南
铂赛东
2022-06-01
目录

执行器

执行器FlowExecutor用来执行一个流程,三种用法。

# 返回类型为LiteflowResponse

其中最经常用到的有3个方法:

//参数为流程ID,无初始流程入参,返回类型为默认上下文泛型的Response
public LiteflowResponse<DefaultContext> execute2Resp(String chainId)
//第一个参数为流程ID,第二个参数为流程入参。其中流程入参可以在组件中通过this.getRequestData()来获得。
public LiteflowResponse<DefaultContext> execute2Resp(String chainId, Object param);
//第一个参数为流程ID,第二个参数为流程入参,第三个参数为自定义的上下文Bean类型
public <T> LiteflowResponse<T> execute2Resp(String chainId, Object param, Class<T> contextBeanClazz)

如果你不定义自己的上下文Bean,那么前2个能满足,LiteFlow提供了默认的上下文DefaultContext。但是这个上下文是弱类型的。所以对于正常的业务,请使用第三个接口。前2个在一些简单的场景和测试场景中可以使用。

第三个适用于你定义了自己的上下文Bean的场景。适用于大多数的业务,推荐使用。

并且这里强烈推荐在业务系统中实现属于自己的上下文Bean。详情请参考数据上下文。

提示

你可以通过LiteflowResponse中的isSuccess()方法来判断链路是否执行成功。

这三个执行方法是不会抛出异常的,如果执行的链路有错误,你可以通过LiteflowResponse的getCause方法来获得。如要抛出异常,请自行抛出。

关于LiteflowResponse的详细描述请参考Response对象。

# 返回类型为上下文Bean

同样的,经常用到的也有3个接口

//参数为流程ID,无初始流程入参
public DefaultContext execute(String chainId) throws Exception;
//第一个参数为流程ID,第二个参数为流程入参。其中流程入参可以在组件中通过this.getRequestData()来获得。
public DefaultContext execute(String chainId,Object param) throws Exception;
//第一个参数为流程ID,第二个参数为流程入参,第三个参数为自定义的上下文类型
public <T> T execute(String chainId, Object param, Class<T> contextBeanClazz) throws Exception

在这种执行接口中,如果链路有错,会直接抛出错误来。

关于上下文Bean,想要了解更多,请参考数据上下文。

# 返回类型为Future

LiteFlow从2.6.13开始支持了执行器层面的异步,支持返回future。

//第一个参数为流程ID,第二个参数为流程入参,第三个参数为自定义的上下文Bean类型
public <T> Future<LiteflowResponse<T>> execute2Future(String chainId, Object param, Class<T> contextBeanClazz)

如果调用这个方法,那就是无阻塞的,想要拿到reponse,请用得到的future.get()就可以了。

同时,主执行器在这个模式下的线程数和线程池也可以自定义,具体配置如下,LiteFlow已经设置了预设值,你也可自己定义。

liteflow.main-executor-works=64
liteflow.main-executor-class=com.yomahub.liteflow.thread.LiteFlowDefaultMainExecutorBuilder

如果你定义了自定义线程池,你需新建一个类,然后实现ExecutorBuilder接口:

public class CustomThreadBuilder implements ExecutorBuilder {
    @Override
    public ExecutorService buildExecutor() {
        return Executors.newCachedThreadPool();
    }
}
帮助我们改善此文档 (opens new window)
上次更新: 2022/10/07, 00:22:18
同步异步编排
数据上下文

← 同步异步编排 数据上下文→

Theme by Vdoing | Copyright © 2020-2023 铂赛东 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式