在做ToB或者ToG相关的项目的时候,我们经常会涉及到使用流程引擎来做一些业务。例如大家常见的审批流转等功能。从这篇文章开始,我们来演示一个流程引擎的实战案例。
说到流程引擎,大家最熟悉的就是activity,但是在这里给大家科普一下,在流程引擎里面目前总体来说可以分为两类,一类是审批式的,一类是逻辑式的。下面给大家举案例说明。
一、审批式的
这种就是大家经常见的,例如请假的审批,文件的审批签字等这种方式的工作流,这里面所有的逻辑操作都是一样的,即审批+签字的模式,对象是人,所以基于这种只需要做一个人员的组织即可,审批的过程其实就在这个人员组织里面进行流转即可。
像这种流程的开发较出名的有:activity框架或者flowable框架。这两个框架是目前在人员角色审批里面使用非常广泛的。
二、逻辑式的
这种呢其实大家也经常使用,但是可能在实际中一把都用最熟悉的if判断等方式来做的,例如下单的时候我们需要有一个流程来进行综合计算优惠券的金额扣减,例如购买总额,然后商家优惠券,满减,vip减扣等,基于这样一套逻辑下来,最终客户会得到一个最终的支付金额,但是由于厂商从成本考虑,那么也会存在调试不同的顺序,从而使利润最大化。所以这个使用流程引擎来做的话就非常方便,随时可以进行动态调整。
像这种流程的开发的话,个人使用比较清晰明了的就是今天给大家介绍的LiteFlow,他的官网地址是:LiteFlow。
LiteFlow介绍
LiteFlow其实可以看做是一个流程引擎+规则引擎的组合,他是一个非常轻量,快速,可稳定动态编排的组合式流程引擎。
LiteFlow支持的规则存储有哪些?
LiteFlow他的流程配置非常简单,例如:
<?xml version="1.0" encoding="UTF-8"?> <flow> <chain name="chain1"> THEN(a, b, c); </chain> </flow
他就是一个很简单的配置文件,他可以存储在以下地方:
1、本地文件 2、zookeeper 3、mysql 4、nacos 5、etcd 6、apollo 7、自定义
在生产环境中,我们最常用的还是存放在mysql中,因为毕竟我们需要和业务进行对接,并且可能自定义UI界面,实现流程的可视化配置。
LiteFlow支持的流程编排模式有哪些?
LiteFlow支持的流程编排模式有:
1、串行编排 2、并行编排 3、选择编排 4、条件编排 5、循环编排
关于LiteFlow更多的信息可参考官网的文档《LiteFlow官网文档》。这里只是简单介绍下,接下来的案例才是我们想要给大家介绍的。
还没有评论,来说两句吧...