Skip to content

流程引擎

模块集成

依赖

xml
<dependency>
    <groupId>com.wkclz.micro</groupId>
    <artifactId>micro-liteflow</artifactId>
    <version>${latest.version}</version>
</dependency>

表结构

sql
CREATE TABLE `liteflow_chain` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `application_name` varchar(31) DEFAULT NULL COMMENT '应用名称',
  `chain_name` varchar(31) DEFAULT NULL COMMENT '规则名称',
  `chain_desc` varchar(63) DEFAULT NULL COMMENT '规则描述',
  `el_data` longtext COMMENT '规则数据',
  `route` longtext COMMENT '路由',
  `namespace` varchar(31) DEFAULT NULL COMMENT '命名空间',
  `enable` int NOT NULL DEFAULT '1' COMMENT '状态',
  `sort` int NOT NULL DEFAULT '0' COMMENT '排序',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `create_by` varchar(31) DEFAULT NULL COMMENT '创建人',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `update_by` varchar(31) DEFAULT NULL COMMENT '更新人',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  `version` int NOT NULL DEFAULT '0' COMMENT '版本号',
  `status` bigint unsigned NOT NULL DEFAULT '1' COMMENT 'status',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='liteflow-规则';

CREATE TABLE `liteflow_script` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `application_name` varchar(31) DEFAULT NULL COMMENT '应用名称',
  `script_id` varchar(31) DEFAULT NULL COMMENT '脚本ID',
  `script_name` varchar(63) DEFAULT NULL COMMENT '脚本名称',
  `script_data` longtext COMMENT '脚本数据',
  `script_type` varchar(31) DEFAULT NULL COMMENT '脚本类型',
  `script_language` varchar(31) DEFAULT NULL COMMENT '脚本语言',
  `enable` int NOT NULL DEFAULT '1' COMMENT '可用状态',
  `sort` int NOT NULL DEFAULT '0' COMMENT '排序',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `create_by` varchar(31) DEFAULT NULL COMMENT '创建人',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `update_by` varchar(31) DEFAULT NULL COMMENT '更新人',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  `version` int NOT NULL DEFAULT '0' COMMENT '版本号',
  `status` bigint unsigned NOT NULL DEFAULT '1' COMMENT 'status',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='liteflow-脚本';

界面

  • shrimp-mdm-ui 项目中的 【页面功能未开发】
  • 文档:暂未部署

功能使用

  • 配置
yaml
liteflow:
  print-banner: false
  rule-source-ext-data-map:
    applicationName: demo
    #是否开启SQL日志
    sqlLogEnabled: false
    #是否开启SQL数据轮询自动刷新机制 默认不开启
    pollingEnabled: true
    pollingIntervalSeconds: 59
    pollingStartSeconds: 59

    chainTableName: liteflow_chain
    chainNameField: chain_name
    elDataField: el_data
    routeField: route
    namespaceField: namespace
    chainCustomSql: SELECT chain_name,chain_desc,el_data,route,namespace FROM liteflow_chain WHERE status = 1 AND enable = 1
    scriptTableName: liteflow_script
    scriptIdField: script_id
    scriptNameField: script_name
    scriptDataField: script_data
    scriptTypeField: script_type
    scriptLanguageField: script_language
    scriptCustomSql: SELECT script_id,script_name,script_data,script_type,script_language FROM liteflow_script WHERE status = 1 AND enable = 1
  • 创建组件
java
@Component("a")
public class ACmp extends NodeComponent {
  @Override
  public void process() {
    System.out.println("ACmp executed!");
  }
}
  • 启动流程
java
@Slf4j
@Component
public class LiteFlowDemo {
    @Autowired
    private FlowExecutor flowExecutor;
    public void run(String... args) throws Exception {
        LiteflowResponse chain1 = flowExecutor.execute2Resp("chain1", args);
        if (chain1.isSuccess()){
            log.info("执行成功");
        }else{
            log.info("执行失败");
        }
    }
}

Released under the MIT License.