runflow —— 流程引擎框架
runflow是一个基于逻辑流转的轻量级流程引擎。 runflow 支持 BPMN 规范,能够把复杂的业务逻辑可视化。开发人员可以通过流程编辑器设计自己的业务流程,为业务设计人员与开发工程师架起一座桥梁。
欢迎大家提 Issues,看到后我会回复的。
2. 特性
- 规则轻量:只要稍微了解bmpn规范的人员就快速上手。三分钟入门,一看既懂。
- 丰富业务场景:支持排他网关,并行网关。可以应用到各种业务场景。
- 多线程编排:通过并行网关与异步任务,可以对多线程进行编排。
- 流程设计:支持导入导出,可视化编辑流程图
3. 界面
排他网关
并行网关
调用活动
4. 快速开始
Step1: 流程
S1.1: 流程设计
有一个五个任务串行执行的流程图demo1
下载文件:demo1.bpmn 放到resouces里面
目录结构如下
也可以用 http://123.249.93.130/runflow/ 在线设计自己的流程
S1.2: build
目前还没有上传到maven中央仓库,因此需要下载源码 安装到本地仓库
git clone https://github.com/songhongtu/runflow.git mvn -Dmaven.test.failure.ignore=true clean install
S2.1: 调用流程(jar包方式)
2.1.1: 引入POM
文件
<dependency> <groupId>com.runflow</groupId> <artifactId>runflow-core</artifactId> <version>0.0.1-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); }
直接运行即可
S3.1: 调用流程(springboot方式)
3.1.1: 引入POM
文件
<dependency> <groupId>com.runflow</groupId> <artifactId>runflow-spring-boot-starters</artifactId> <version>0.0.1-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(); } /** * 生成图片 * @param key * @param response * @throws IOException */ @GetMapping("/images") public void images(String key, HttpServletResponse response) throws IOException { InputStream inputStream = runTimeService.generaImages(key); IOUtils.copy(inputStream, response.getOutputStream()); }

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 代码影响范围工具探索
作者:京东零售田创新、耿蕾 一、背景 1.祖传代码不敢随意改动,影响范围无法评估。并且组内时常有因为修改了某块代码,导致其他业务受到影响,产生bug,影响生产。 2.研发提测完成后,测试进入测试后经常会向研发询问本次需求改动影响范围,以此来确定测试用例,以达到精准测试,提升整个需求的质量,缩短交付周期。 那么,如何才能规避这种隐患?有没有一种工具能够协助代码研发及review人员更加精确的判断当前代码改动影响范围,有没有一种方法能够提供除了业务逻辑条件验证,针对代码作用范围,给测试人员提供精确验证链路? 二、方案调研 技术方案调研 经过各方资料查找及比对,最终我们整理了两个满足我们需求的方案: 1.IDEA提供了显示调用指定Java方法向上的完整调用链的功能,可以通过“Navigate -> Call Hierarchy”菜单(快捷键:control+option+H)使用,缺点是并没有向下的调用链生成。 2.开源框架调研:wala/soot静态代码分析工具。 针对上述的调研,大致确认了两种方案,集中分析两种方案的优劣,来制定符合我们目前情况的方案: 工具名称 优势 劣势 是否符...
- 下一篇
Bitwarden 收购开源创业公司 Passwordless.dev
近些年黑客入侵企业系统、窃取企业关键数据、信息和源代码的事件频繁发生,很多时候黑客并没有使用什么高科技的手段,而是利用员工泄漏的账号登录了内部系统,从而获取了想要的信息。 比如去年 8 月 LastPass 发生黑客入侵就是因为公司的开发者账户被盗,黑客就成功利用该账户访问了 LastPass 的开发者环境,窃取了源代码等信息;再比如去年年底 Slack 也是因为员工令牌被盗,让黑客获得了 Slack 的 GitHub 仓库访问权。 这两起安全事件透露出,公司除了要加强产品和系统本身的安全性,还需要加强员工账号的安全性和员工的安全意识。 无密码解决方案就是一项目前很多公司都在研究和投资的方向,该解决方案可以让用户使用指纹、面部,以及 USB 安全密钥等方式登录账号,无需用户再输入密码,这个解决方案可以带来更好的用户体验和更强的安全性。 开源的密码管理器 Bitwarden 近日宣布,他们已经收购了 Passwordless.dev,而后者就是一家帮助企业在其应用程序中增加无密码登录功能的创业公司。Passwordless.dev 提供了一个同名的开发框架,它使软件团队能够在应用程序中更...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址