# 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 ``` #### 框架介绍 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0127/171535_49d0aba5_1884864.png "屏幕截图.png") #### 使用说明 1. 核心类、接口 - AsyncFlowManager:异步流节点管理器 - AsyncFlowData:数据槽(异步流上下文) - AsyncFlowRequest:异步流请求参数 - AsyncFlowNodeResponse:异步流节点(Node)返回实体 - AsyncFlowResponse:异步流返回实体 - EnumBaseInterface:操作类型枚举类接口(请求参数中(AsyncFlowRequest )操作模块、操作节点都需要实现当前接口) - IFlowNode 节点统一实现接口 带上下文泛型 2. 注解、枚举 - @FlowInfo:当前操作流信息(名称、负责人、超时时间) - @NodeInfo:流节点信息(中文说明,是否业务日志) - @AsyncFlowPubGetData:强数据类型赋值是对像的类型(1:需要继续往下反射的对象,2:最底层可直接赋值的对象) - ExecuteEnum:节点类型(验证、查询、操作、保存、保存后同步、异步),各个节点按照以上顺序进行先后执行 3. 使用示例 - 调用示例 ![调用示例](https://images.gitee.com/uploads/images/2021/0128/150534_38488ff1_1884864.png "屏幕截图.png") - 流节点管理器 ![流节点管理器](https://images.gitee.com/uploads/images/2021/0128/151453_ff9470b6_1884864.png "屏幕截图.png") - 流节点具体实现 ![流节点具体实现](https://images.gitee.com/uploads/images/2021/0128/152042_88f759ef_1884864.png "屏幕截图.png") #### 配置文件说明 ``` 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" ```