🍿框架设计
Gobrs-Async 在设计时,就充分考虑了开发者的使用习惯, 没有依赖任何中间件。 对并发框架做了良好的封装。主要使用
CountDownLatch
、ReentrantLock
、volatile
等一系列并发技术开发设计。
# 整体架构
# 任务触发器
任务流的启动者, 负责启动任务执行流
# 规则解析引擎
负责解析使用者配置的规则,同时于Spring结合,将配置的 Spring Bean
解析成 TaskBean
,进而通过解析引擎加载成 任务装饰器。进而组装成任务树
# 任务启动器
负责通过使用解析引擎解析的任务树。结合 JUC 并发框架调度实现对任务的统一管理,核心方法有
- trigger 触发任务加载器,为加载任务准备环境
# 任务加载器
负责加载任务流程,开始调用任务执行器执行核心流程
- load 核心任务流程方法,在这里阻塞等待整个任务流程
- getBeginProcess 获取子任务开始流程
- completed 任务完成
- errorInterrupted 任务失败 中断任务流程
- error 任务失败
# 任务执行器
最终的任务执行,每一个任务对应一个TaskActuator
任务的 拦截、异常、执行、线程复用 等必要条件判断都在这里处理
- prepare 任务前置处理
- preInterceptor 统一任务前置处理
- task 核心任务方法,业务执行内容
- postInterceptor 统一后置处理
- onSuccess 任务执行成功回调
- onFail 任务执行失败回调
# 任务总线
任务流程传递总线,包括 请求参数、任务加载器、 响应结果, 该对象暴露给使用者,拿到匹配业务的数据信息,例如: 返回结果、主动中断任务流程等功能
需要任务总线(TaskSupport
)支持
# 核心类图
- name: 技术小屋
desc: 大道至简,知易行难
avatar: https://cdn.jsdelivr.net/gh/xugaoyi/image_store/blog/20200122153807.jpg # 可选
link: https://docs.sizegang.cn/ # 可选
bgColor: '#CBEAFA' # 可选,默认var(--bodyBg)。颜色值有#号时请添加单引号
textColor: '#6854A1' # 可选,默认var(--textColor)
- name: 架构师必经之路
desc: '精品学习资源'
avatar: https://cdn.jsdelivr.net/gh/xaoxuu/assets@master/avatar/avatar.png
link: https://learn.sizegang.cn
bgColor: '#718971'
textColor: '#fff'
- name: 平凡的你我
desc: 快乐购物,享受生活
avatar: https://reinness.com/avatar.png
link: https://m.jd.com
bgColor: '#FCDBA0'
textColor: '#A05F2C'
Last Updated: 11/4/2022, 3:19:44 PM