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

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

    • 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.0(当前版本)
  • What's New

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

    • 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规则文件配置源
    • 📘SQL数据库配置源
    • 📋Nacos配置源
    • 🗄Etcd配置源
    • 📜Apollo配置源
    • 📙自定义配置源
  • 🔗常规组件

    • 📎普通组件
    • ✂️选择组件
    • 📌条件组件
    • 🧬次数循环组件
    • ⛓条件循环组件
    • ⌛️迭代循环组件
    • 🧿退出循环组件
  • 🧩EL规则的写法

    • 🍄说明
    • 🌴串行编排
    • 🎋并行编排
    • 🌾选择编排
    • 🌵条件编排
    • 🌳循环编排
    • 🍁使用子流程
    • 🍂使用子变量
    • 💐复杂编排例子
    • 🌻关于分号
    • 🌰关于注释
    • 🐚组件名包装
    • 🔆验证规则
  • 🌮数据上下文

    • 🍄说明
    • 🌯数据上下文的定义和使用
    • 🪶用初始化好的上下文传入
  • 🛩执行器

    • 🍄说明
    • 🎡执行方法
    • 🎢流程入参
    • 🎈LiteflowResponse对象
  • 🍋脚本组件

    • 🍫选择脚本语言
    • 🍕定义脚本组件
    • 🌯文件脚本的定义
    • 🍣与Java进行交互
    • 🍘动态刷新脚本
  • 🍇声明式组件

    • 🥭什么叫声明式组件
    • 🧅类级别式声明
    • 🥥方法级别式声明
  • 🎲用代码动态构造规则

    • 🍄说明
    • 🎯如何构造
  • 🎨高级特性

    • 🍒前置和后置组件
    • 🥠替补组件
    • 🍉组件参数
    • 🍑组件别名
    • 🍍组件标签
    • 🥝组件事件回调
    • 🥑隐式子流程
    • 🍕私有投递
    • 🍣组件重试
    • 🍖平滑热刷新
    • 🍪组件切面
    • 🍡步骤信息
    • 🧊异常
    • 🧇打印信息详解
    • 🧁自定义请求Id
    • 🌭不同格式规则加载
    • 🥗异步线程池自定义
    • 🍿自定义组件执行器
      • 全局组件执行器
      • 单个组件配置特殊的执行器
      • 优先级
      • 自定义执行器对于重试功能的影响
    • 🍥简单监控
    • 🧉XML的DTD
  • ⛱测试用例以及示例

    • 🪁测试用例
    • 🪀DEMO案例
  • 🪂性能表现
  • v2.9.X文档
  • 🎨高级特性
铂赛东
2022-07-03
目录

🍿自定义组件执行器

LiteFlow允许用户定义自定义组件执行器,通过这个可以在执行组件时,加入自定义代码,重写重试策略。当然其他方式也可以达到相同的目的,比如说组件切面功能。

如果你没有非常明确这个功能是干什么的,建议还是用默认的方式。(其实就是不用看此章节的意思)

# 全局组件执行器

对于自定义组件执行器,你可以在全局上进行替换。默认的组件执行器为:com.yomahub.liteflow.flow.executor.DefaultNodeExecutor

你可以通过以下方式替换全局默认组件执行器:

liteflow.node-executor-class=com.yomahub.liteflow.test.nodeExecutor.CustomerDefaultNodeExecutor

自定义组件执行器需要继承com.yomahub.liteflow.entity.executor.NodeExecutor。

public class CustomerDefaultNodeExecutor extends NodeExecutor {
    @Override
    public void execute(NodeComponent instance) throws Exception {
        LOG.info("使用customerDefaultNodeExecutor进行执行");
        super.execute(instance);
      
      	//在这里你可以加入自己的代码,包括上面的代码都可以去掉
      	//但是要确保至少要调用instance.execute(),否组件就真的无法被正确执行了
    }
}

# 单个组件配置特殊的执行器

除了全局执行器,单个组件也支持配置自定义执行器。

你需要在定义组件的时候,实现getNodeExecutorClass 方法:

@LiteflowComponent("d")
public class DCmp extends NodeComponent {

    @Override
    public void process() {
        System.out.println("DCmp executed!");
    }

    @Override
    public Class<? extends NodeExecutor> getNodeExecutorClass() {
        return CustomerNodeExecutorAndCustomRetry.class;
    }
}

# 优先级

如果全局和单个组件都配置自定义执行器的情况下,优先使用单个组件上配置的执行器。

# 自定义执行器对于重试功能的影响

因为重试的逻辑是在默认执行器里面实现的。所以如果你自己配置了自定义执行器,那么重试的功能需要你自己去实现。并且全局重试参数配置还有@LiteflowRetry功能标签将失效。

当然你自己实现的自定义执行器,还是可以拿到重试参数,自己写特殊的重试策略的。只不过这一切都需要自己去完成。这点要注意下。

帮助我们改善此文档 (opens new window)
上次更新: 2023/03/17, 01:44:42
🥗异步线程池自定义
🍥简单监控

← 🥗异步线程池自定义 🍥简单监控→

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