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-10-06
目录

📘SQL数据库配置源

LiteFlow从v2.9.0开始,原生支持了标准关系型结构化数据库的配置源,只要你的数据库兼容标准SQL语法,都可以支持。

# 依赖

如果使用数据库作为规则配置源,你需要添加以下额外插件依赖:

<dependency>
    <groupId>com.yomahub</groupId>
    <artifactId>liteflow-rule-sql</artifactId>
    <version>2.9.7</version>
</dependency>

# 配置

依赖了插件包之后,你无需再配置liteflow.ruleSource路径。

只需要配置插件的额外参数即可:

    liteflow:
      rule-source-ext-data-map:
        url: jdbc:mysql://localhost:3306/poseidon
        driverClassName: com.mysql.cj.jdbc.Driver
        username: root
        password: 123456
        applicationName: demo
        #以下是chain表的配置,这个一定得有
        chainTableName: chain
        chainApplicationNameField: application_name
        chainNameField: chain_name
        elDataField: el_data
        #以下是script表的配置,如果你没使用到脚本,下面可以不配置
        scriptTableName: script
        scriptApplicationNameField: application_name
        scriptIdField: script_id
        scriptNameField: script_name
        scriptDataField: script_data
        scriptTypeField: script_type
    
    liteflow.rule-source-ext-data={\
      "url":"jdbc:mysql://localhost:3306/poseidon",\
      "driverClassName":"com.mysql.cj.jdbc.Driver",\
      "username":"root",\
      "password":"123456",\
      "applicationName": "demo",\
      "chainTableName": "chain",\
      "chainApplicationNameField": "application_name",\
      "chainNameField": "chain_name",\
      "elDataField": "el_data",\
      "scriptTableName": "script",\
      "scriptApplicationNameField": "application_name",\
      "scriptIdField": "script_id",\
      "scriptNameField": "script_name",\
      "scriptDataField": "script_data",\
      "scriptTypeField": "script_type"
      }
    
    // Make sure to add code blocks to your code group

    # 配置说明

    LiteFlow并不约束你的表名和表结构,你只需要把表名和相关的字段名配置在参数里即可。

    对于配置项说明如下:

    配置项 说明
    url jdbc的连接url
    driverClassName 驱动器类名
    username 数据库用户名
    password 数据库密码
    applicationName 你的应用名称
    chainTableName 编排规则表的表名
    chainApplicationNameField 编排规则表中应用名称存储字段名
    chainNameField 规则名称存储的字段名
    elDataField EL表达式的字段(只存EL)
    scriptTableName 你的脚本存储表的表名
    scriptApplicationNameField 脚本表中应用名称存储字段名
    scriptIdField 脚本组件的Id的字段名
    scriptNameField 脚本组件名称的字段名
    scriptDataField 脚本数据的字段名
    scriptTypeField 脚本类型的字段名(类型参照定义脚本组件)

    在数据库中,你至少需要一张表来存储编排规则,这是必须的。

    如果你使用到了脚本,那么需要第二张表来存储脚本。

    在规则表中,一行数据就是一个规则。在脚本表中,一行数据就是一个脚本组件。


    举例:

    规则表:liteflow_chain

    id application_name chain_name chain_desc el_data create_time
    1 demo chain1 测试流程1 THEN(a, b, c, s1,s2); 2022-09-19 19:31:00

    脚本表:liteflow_script

    id application_name script_id script_name script_data script_type create_time
    1 demo s1 脚本s1 import cn.hutool.core.date.DateUtil
    def date = DateUtil.parse("2022-10-17 13:31:43")
    println(date) defaultContext.setData("demoDate", date)
    class Student {
    int studentID
    String studentName
    }
    Student student = new Student() student.studentID = 100301 student.studentName = "张三" defaultContext.setData("student",student) def a=3
    def b=2
    defaultContext.setData("s1",a*b)
    script 2022-09-19 19:31:00
    2 demo s2 脚本s2 defaultContext.setData("s2","hello") script 2022-09-19 19:31:00

    # 自动刷新

    由于结构化数据库并不提供监听机制,所以当你的规则在数据库中发生变化,LiteFlow是感知不到变化的。不会自动刷新规则。

    你需要手动调用LiteFlow提供的相关API来完成规则刷新。在实际应用中,你可以把这个刷新做成页面上的一个按钮或者一个http链接来进行操作。

    具体如何调用API进行规则刷新请参照平滑热刷新。

    # 小例子

    为了让大家能简单上手SQL规则文件的配置和运行,这里有一个小demo,大家可以拉到本地来运行,需要你替换数据库的配置信息。

    运行项目前,先读项目里的readme.txt文件。

    https://github.com/bryan31/liteflow-ext-rule-demo

    帮助我们改善此文档 (opens new window)
    上次更新: 2023/03/17, 01:44:42
    📗ZK规则文件配置源
    📋Nacos配置源

    ← 📗ZK规则文件配置源 📋Nacos配置源→

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