# flow
**Repository Path**: nowuser/flow
## Basic Information
- **Project Name**: flow
- **Description**: 异步流框架 对于复杂的业务逻辑,只需要按业务最小粒度实现一个个组件,每个组件保持单一职责。 它是一个轻量,快速的组件式流程引擎框架,组件编排,帮助解耦业务代码,让每一个业务片段都是一个组件。
提供了可视化的代码生成器,可以一键生成代码;
提供了完成调用链监控系统,可以详细的跟踪整个调用过程;
用流程图的方式展示调用过程,是的复杂的业务流程清晰明了;
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: https://gitee.com/list_dust/flow/wikis/%E4%BB%8B%E7%BB%8D
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2022-07-16
- **Last Updated**: 2022-07-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# asyncflow
#### 介绍
异步流框架
对于复杂的业务逻辑,只需要按业务最小粒度实现一个个组件,每个组件保持单一职责。
它是一个轻量,快速的组件式流程引擎框架,组件编排,帮助解耦业务代码,让每一个业务片段都是一个组件
### **[使用文档看WIKI](https://gitee.com/list_dust/flow/wikis/%E4%BB%8B%E7%BB%8D)**
#### 软件架构
软件架构说明
#### 安装教程
1. 可上传到个人私有仓库直接引入
```
com.lgq
asyncflow
1.0.16
```
#### 框架介绍

#### 使用说明
1. 核心类、接口
- AsyncFlowManager:异步流节点管理器
- AsyncFlowData:数据槽(异步流上下文)
- AsyncFlowRequest:异步流请求参数
- AsyncFlowNodeResponse:异步流节点(Node)返回实体
- AsyncFlowResponse:异步流返回实体
- EnumBaseInterface:操作类型枚举类接口(请求参数中(AsyncFlowRequest )操作模块、操作节点都需要实现当前接口)
- IFlowNode 节点统一实现接口 带上下文泛型
2. 注解、枚举
- @FlowInfo:当前操作流信息(名称、负责人、超时时间)
- @NodeInfo:流节点信息(中文说明,是否业务日志)
- @AsyncFlowPubGetData:强数据类型赋值是对像的类型(1:需要继续往下反射的对象,2:最底层可直接赋值的对象)
- ExecuteEnum:节点类型(验证、查询、操作、保存、保存后同步、异步),各个节点按照以上顺序进行先后执行
3. 使用示例
- 调用示例

- 流节点管理器

- 流节点具体实现

#### 配置文件说明
```
asyncflow.yml
#这个文件放在跟application.yml同一个层级,如果有多环境,也可以对应区分(文件名不能改变,配置的名称也不能改变)
# 节点流日志保存的MongoDB对应的链接字符串 close 标示关闭
mongoDBConfigStr: "close"
# 流节点日志保存的MongoDB名称(根据自己项目的实际情况进行配置)
mongoDBName: "Product"
# 流节点日志保存的MongoDB表名称(名称可自己定义)
mongoDBTableName: "AsyncFlowLog"
# 当前环境
evn: "test"
# 节点报警接口 接口定义 请求实体两个属性(users:发送人唯一标示,content:发送内容)
alarmUrl: "http://xxx"
# 当前站点的数据源 前面的db-必须保持一致 db-后面写数据库名称 每个对应的可以是各个数据库的SessionFactory(基于MyBatis)
db-XXX: "XXXSessionFactory"
db-TTT: "TTTSessionFactory"
db-YYY: "YYYSessionFactory"
db-ZZZ: "ZZZSessionFactory"
```