吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2420|回复: 3
收起左侧

[Java 转载] 今天看到一个不错的项目liteflow

[复制链接]
gueenwang 发表于 2021-11-22 21:31
liteflow  快速的组件式流程引擎框架/规则引擎
官网介绍
  • 复杂业务的解耦编排利器,为所有组件提供统一化的实现方式
  • 基于规则文件来编排流程,支持xml,json,yml三种规则文件写法方式
  • 框架中提供本地文件配置源,zk配置源的实现
  • 框架提供自定义配置源,只需实现一个接口,即可从任何地方加载配置源
  • 支持SpringBoot的自动装配,也支持Spring的配置和非Spring的项目
  • 提供串行和并行2种模式,提供常见常见的表达式语句
  • 可以定义脚本语言节点,支持QLExpress和Groovy两种脚本
  • 组件可以支持重试,每个组件均可自定义重试配置和指定异常
  • 提供无级嵌套的显式子流程模式,隐式子流程模式
  • 数据槽隔离机制,在多并发下上下文独立而稳定
  • 支持优雅平滑热刷新特性
  • 对系统损耗极低,可以稳定运行在核心业务大规模的微服务中
  • 自带简单的监控,能够知道每个组件的运行耗时排行

试了下单机版 继续研究中
```
<dependency>
    <groupId>com.yomahub</groupId>
    <artifactId>liteflow-core</artifactId>
    <version>2.6.4</version>
</dependency>
```
```
public class ACmp extends NodeComponent {

    @Override
    public void process() {
        //do your business
    }
}
```
```
<?xml version="1.0" encoding="UTF-8"?>
<flow>
    <nodes>
        <node id="a" class="com.yomahub.liteflow.test.component.AComponent"/>
        <node id="b" class="com.yomahub.liteflow.test.component.BComponent"/>
        <node id="c" class="com.yomahub.liteflow.test.component.CComponent"/>
        <node id="d" class="com.yomahub.liteflow.test.component.DComponent"/>
        <node id="e" class="com.yomahub.liteflow.test.component.EComponent"/>
    </nodes>
   
    <chain name="chain1">
        <then value="a,b,c"/> <!-- then表示串行 -->
        <when value="d,e"/> <!-- when表示并行 -->
    </chain>
</flow>
```
```
FlowExecutor executor = new FlowExecutor();
LiteflowConfig liteflowConfig = new LiteflowConfig();
liteflowConfig.setRuleSource("config/flow.xml");
executor.setLiteflowConfig(liteflowConfig);
executor.init();
LiteflowResponse<DefaultSlot> response = executor.execute2Resp("chain1", "arg");
```

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wfzc197647 发表于 2021-11-23 11:23
支持楼主
 楼主| gueenwang 发表于 2021-11-24 13:03
```
  @Override
        public void process() {
            Slot slot = getSlot();
            String name = getName();
            String nodeId = getNodeId();
            Map<String,String> chainReqData = slot.getRequestData();
            System.out.println(chainReqData);
            System.out.println(2/0);
        }
```
制造异常

Throwable cause = response.getCause();
获取异常

```
13:02:52.713 [main] INFO com.yomahub.liteflow.entity.data.DataBus - [684780186229100]:slot[0] released
java.lang.ArithmeticException: / by zero
```
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表