runflow是一个基于逻辑流转的无状态轻量级流程引擎。 runflow支持BPMN规范,能够把复杂的业务逻辑可视化。开发人员可以通过流程编辑器设计自己的业务流程,为业务设计人员与开发工程师架起一座桥梁。
自定义插件
简化版下单逻辑
一个功能刚开始比较简单,随着后面的不断迭代完善,功能越来越复杂。
比如下单功能,刚开始功能只是 验证必填项-库存预占-生成订单,
后面经过一年的不断迭代变成了 验证必填项-用户校验-风控校验-拆单-优惠信息-库存预占-生成订单(真实步骤远比这些多,这里简化了)
假设在接着迭代功能,看着动辄几千行的的代码,开发的小伙伴一定头皮发麻吧。产品的小伙伴也不好受,需要重新梳理流程步骤。
在这种情况下,runflow诞生了,可以图形化编排任务,对于开发来说,代码拆分成一个个步骤,更方便维护。产品也可以直接看流程图,更高效的进行设计。
activiti,flowable 是基于角色任务流转的,runflow是基于逻辑流转的。
比如 订单流程 下单-审核-发货-确认收货。
activiti,flowable可以控制整个订单流程的运转。
runflow擅长控制下单流程里面的某个任务里面的步骤,比如订单流程里面的 下单有 验证必填项-用户校验-风控校验-拆单-优惠信息-库存预占-生成订单 七个步骤 runflow可以对里面的步骤进行编排。
有一个五个任务串行执行的流程图demo1
下载文件:demo1.bpmn 放到resouces里面
目录结构如下
也可以用 http://123.249.93.130/runflow/ 在线设计自己的流程
目前还没有上传到maven中央仓库,因此需要下载源码 安装到本地仓库
git clone https://github.com/songhongtu/runflow.git mvn -Dmaven.test.failure.ignore=true clean install
2.1.1: 引入POM
文件
<dependency> <groupId>com.runflow</groupId> <artifactId>runflow-core</artifactId> <version>0.0.2-Beta</version> </dependency>
2.1.2: 调用流程
ProcessEngineConfigurationImpl conf = new ProcessEngineConfigurationImpl(); RunTimeServiceImpl runTimeService; { //初始化 conf.init(); runTimeService = conf.getRunTimeService(); //bpmn位置 conf.addPath("/bpmn/demo1.bpmn"); } @Test public void demo1() { //a.incrementAndGet() AtomicInteger integer = new AtomicInteger(0); Map map = new HashMap(); map.put("a", integer); runTimeService.startWorkflow("Process_1671936597549", map); System.out.println(integer); }
直接运行即可
3.1.1: 引入POM
文件
<dependency> <groupId>com.runflow</groupId> <artifactId>runflow-spring-boot-starters</artifactId> <version>0.0.2-Beta</version> </dependency>
3.1.2: 调用流程
@Autowired RunTimeServiceImpl runTimeService; @GetMapping("/demo1") public Integer demo1(){ AtomicInteger integer = new AtomicInteger(0); Map map = new HashMap(); map.put("a", integer); runTimeService.startWorkflow("Process_1671936597549",map); System.out.println(integer.get()); return integer.get(); }
runflow-core [核心模块] runflow-spring [spring模块] runflow-spring-boot-starters [springboot模块] plugin/runflow-plugin-redis [redis插件] plugin/runflow-plugin-mybatis [mybatis插件] plugin/runflow-plugin-excel [excel插件] runflow-springboot-demo [springboot例子]
欢迎提出更好的意见,帮助完善 runflow
我正在研究一个需要工作流/流程引擎的解决方案。我的工作流包含一些基于Java的进程(类)和一些Linux Shell脚本。流程不会是静态的,每个流程的执行取决于前一个流程的状态/结果,将有多条路径,路径将由前一个流程的状态确定。 我尝试查看jBPM,但没有找到合适的支持来调用shell脚本。请根据我的要求为我推荐一个合适的替代方案。 非常感谢。
Cocos Creator 的引擎部分包括 JavaScript、Cocos2d-x-lite 和 adapter 三个部分。全部都在 GitHub 上开源。地址在: JavaScript 引擎:https://github.com/cocos-creator/engine Cocos2d-x-lite 引擎:https://github.com/cocos-creator/cocos2d-x-l
Cocos Creator 3D 的引擎部分包括 JavaScript、Cocos2d-x-lite 和 adapter 三个部分(暂不支持 adapter 引擎定制)。全部都在 github 上开源。地址在: JavaScript 引擎:https://github.com/cocos-creator/engine Cocos2d-x-lite 引擎:https://github.com/coc
null 有人有类似问题的经验吗?在我看来,这应该是很常见的,如果我必须完全自己实现它,那就奇怪了。我在这里发现了一些关于编排和编排系统理论的问题(比如这个和这个),但没有发现实现它的工具的真实示例。此外,我认为我们并不完全是在谈论微服务--任务不是延长和繁重的,它们只是很多,在后台运行,执行许多类型的短任务。我不会为每种工作类型创建服务。 我现在也不是在寻找云和容器服务--据我所知,部署是一个不
我正在向drools规则引擎插入数据,但我无法理解它是如何处理插入的数据的。插入数据的代码是:
2 架构流程