一款简单、易用、傻瓜式的 Java 流程引擎
这是一个或许对你有用的社群 一对一交流/面试小册/简历优化/求职解惑欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料《项目实战视频》从书中学往事中“练”《互联网高频面试题》面朝简历学习春暖花开《架构 x 系统设计》摧枯拉朽掌控面试高频场景题《精进 Java 学习指南》系统学习互联网主流技术栈《必读 Java 源码专栏》知其然知其所以然这是一个或许对你有用的开源项目国产Star破10w的开源项目前端包括管理后台、微信小程序后端支持单体、微服务架构RBAC权限、数据权限、SaaS多租户、商城、支付、工作流、大屏报表、ERP、CRM、AI大模型、IoT物联网等功能多模块https://gitee.com/zhijiantianya/ruoyi-vue-pro微服务https://gitee.com/zhijiantianya/yudao-cloud视频教程https://doc.iocoder.cn【国内首批】支持 JDK17/21SpringBoot3、JDK8/11Spring Boot2双版本来源juejin.cn/post/7579476335556886563Easy Work 是什么?如何使用 暂停工作流JSON构建工作流Easy Work 是什么?Easy Work 是一个用于 Java 的工作流引擎。它提供了简洁的 API 和 构建模块便于创建和运行可组合的工作流。在Easy Work中工作单元由Work接口表示工作流则由WorkFlow接口表示。Easy Work 提供了 WorkFlow 接口的6种实现方式。这些是使用Easy Work创建工作流时所需了解的唯一基本流程。你无需学习复杂的符号或概念只需掌握几个易于理解的自然API即可。基于 Spring Boot MyBatis Plus Vue Element 实现的后台管理系统 用户小程序支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能项目地址https://github.com/YunaiV/ruoyi-vue-pro视频教程https://doc.iocoder.cn/video/如何使用 首先让我们创建一个 Work:public class PrintMessageWork implements Work { privatefinal String message; public PrintMessageWork(String message) { this.message message; } Override public String execute(WorkContext workContext) { System.out.println(message); return message; } }此 Work 将指定消息打印至标准输出。现在假设我们想要创建如下工作流程打印 a 三次顺序打印 b c d并行执行 e f如果并行执行的结果成功执行 g, 否则执行 h最后执行 z此工作流程说明如下flow1是一个 打印 a 的RepeatFlow连续执行三次flow2是一个 依次打印 b c d 的SequentialFlow 按照顺序依次执行flow3是一个 并行打印 e f 的ParallelFlow 同时执行flow4是一个 基于条件判断的ConditionalFlow首先执行flow3如果执行成功状态为 COMPLETE则执行 g否则执行 hflow5是一个 顺序执行流程SequentialFlow保证 顺序执行flow1flow2flow4最后执行 z使用Easy Work此工作流可以通过以下代码段实现PrintMessageWork a new PrintMessageWork(a); PrintMessageWork b new PrintMessageWork(b); PrintMessageWork c new PrintMessageWork(c); PrintMessageWork d new PrintMessageWork(d); PrintMessageWork e new PrintMessageWork(e); PrintMessageWork f new PrintMessageWork(f); PrintMessageWork g new PrintMessageWork(g); PrintMessageWork h new PrintMessageWork(h); PrintMessageWork z new PrintMessageWork(z); WorkFlow flow aNewSequentialFlow( aNewRepeatFlow(a).times(3), aNewSequentialFlow(b,c,d), aNewConditionalFlow( aNewParallelFlow(e,f).withAutoShutDown(true) ).when( WorkReportPredicate.COMPLETED, g, h ), z ); aNewWorkFlowEngine().run(flow, new WorkContext());基于 Spring Cloud Alibaba Gateway Nacos RocketMQ Vue Element 实现的后台管理系统 用户小程序支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能项目地址https://github.com/YunaiV/yudao-cloud视频教程https://doc.iocoder.cn/video/暂停工作流从 v1.0.5开始 EasyWork工作流支持 断点 通过断点 你可以暂停执行工作流做一些其他事情然后恢复执行工作流。你可以在工作流的任何位置配置断点。例如你可以将断点设置在c工作单元上然后恢复执行。此工作流说明如下此工作流可以通过以下代码段实现SequentialFlow flow aNewSequentialFlow( aNewRepeatFlow(a).times(3), aNewSequentialFlow(b,aNamePointWork(c).point(C_BREAK_POINT),d), aNewConditionalFlow( aNewParallelFlow(e,f).withAutoShutDown(true) ).when( WorkReportPredicate.COMPLETED, g, h ), z ); //执行到改断点并暂停 flow.execute(C_BREAK_POINT); System.out.println(execute to the break point C_BREAK_POINT); //从断点处继续执行直到完成 flow.execute();JSON构建工作流从 V1.0.8开始 EasyWork工作流支持基于 JSON 的构建你可以通过 JSON 的方式构建任意复杂的工作流。 基于以上图示中的例子通过 JSON 构建工作流的片段为(example.json){ type: sequential, works: [{ type: repeat, times: 3, work: { type: work.PrintMessageWork, message: a } },{ type: sequential, works: [{ type: work.PrintMessageWork, message: b },{ type: work.PrintMessageWork, message: c },{ type: work.PrintMessageWork, message: d }] },{ type: conditional, decide: { type: parallel, autoShutdown: true, works: [{ type: work.PrintMessageWork, message: e },{ type: work.PrintMessageWork, message: f }] }, predicate: { left : $status, operator: eq, right: COMPLETED }, trueWork: { type: work.PrintMessageWork, message: g }, falseWork: { type: work.PrintMessageWork, message: h } }], then: { type: work.PrintMessageWork, message: z } }你可以通过以下代码反序列化工作流并进行执行更多例子请参考test/java/DeserializeTest)String json ResourceReader.readJSON(json/example.json); SequentialFlow sequentialFlow (SequentialFlow) deserialize(json); sequentialFlow.execute(new WorkContext());这不是一个非常有用的工作流只是为了让你了解如何使用Easy Work而编写工作流。你可以在test/java中 查看更多的测试用例。开源地址https://gitee.com/ifrog/easy-work欢迎加入我的知识星球全面提升技术能力。 加入方式“长按”或“扫描”下方二维码噢星球的内容包括项目实战、面试招聘、源码解析、学习路线。文章有帮助的话在看转发吧。 谢谢支持哟 (*^__^*

相关新闻

研究生收藏!最受喜爱的AI论文写作软件 —— 千笔写作工具

研究生收藏!最受喜爱的AI论文写作软件 —— 千笔写作工具

你是否曾为论文选题而烦恼,反复修改却仍不满意?面对繁杂的文献资料和格式要求,常常感到力不从心?论文写作不仅是对知识的考验,更是对耐心与效率的挑战。在学术道路上,每一个学生都渴望找到一款能真正帮自己…

2026/7/6 14:57:18 阅读更多 →
2005-2025年我国逐日平均气温栅格数据

2005-2025年我国逐日平均气温栅格数据

气象数据是我们在各项研究中都经常使用的数据,尤其是高空间精度或者高时间精度的气象数据非常受欢迎。 今日我们分享的是2005—2025年我国逐日平均气温栅格数据!该数据来源于Climate Data Store(CDS)中的ERA5-Land再分析数据集。…

2026/7/7 13:35:48 阅读更多 →
LongCat-Image-Editn部署指南:Windows WSL2环境下运行start.sh的依赖安装要点

LongCat-Image-Editn部署指南:Windows WSL2环境下运行start.sh的依赖安装要点

LongCat-Image-Editn部署指南:Windows WSL2环境下运行start.sh的依赖安装要点 1. 环境准备与快速部署 如果你在Windows系统上想要体验LongCat-Image-Editn的强大图像编辑能力,WSL2(Windows Subsystem for Linux)是最佳选择。这个…

2026/7/6 22:27:24 阅读更多 →

最新新闻

Linux环境变量超全学习笔记|Xshell实操+命令详解+练习题完整演示

Linux环境变量超全学习笔记|Xshell实操+命令详解+练习题完整演示

一、前言 本次围绕Linux环境变量完成完整实操学习,梳理核心概念、全套操作命令,结合Xshell终端操作截图搭建完整知识体系,并完成课件配套3道实操练习题,完整记录操作流程与运行结果。 二、核心概念理解 环境变量定义 环境变量采用…

2026/7/8 7:41:25 阅读更多 →
基于群辉 + Docker + Flask 搭建企业内部自动化服务平台

基于群辉 + Docker + Flask 搭建企业内部自动化服务平台

记录一次使用群辉 NAS 搭建企业内部自动化服务平台的实践,包括 Docker 容器部署、自动更新、远程访问以及局域网设备调度。前言随着团队内部自动化需求越来越多,需要一个统一的平台来管理各种自动化流程。相比购买云服务器,群辉 NAS 具有成本…

2026/7/8 7:39:25 阅读更多 →
AKShare金融数据接口库的企业级架构设计与性能调优方案

AKShare金融数据接口库的企业级架构设计与性能调优方案

AKShare金融数据接口库的企业级架构设计与性能调优方案 【免费下载链接】akshare AKShare is an elegant and simple financial data interface library for Python, built for human beings! 开源财经数据接口库 项目地址: https://gitcode.com/gh_mirrors/aks/akshare …

2026/7/8 7:37:24 阅读更多 →
Havenlon |入门认知系列:为什么我们选择海狸作为精神符号

Havenlon |入门认知系列:为什么我们选择海狸作为精神符号

为什么我们选择海狸作为精神符号?它不代表攻击,它代表边界。摘要Havenlon 选择海狸作为精神符号,并不是因为它足够可爱,也不是想给一个严肃的安全系统套上一层轻松的外壳。真正的原因只有一个:海狸是自然界里极少见的工…

2026/7/8 7:37:24 阅读更多 →
RHCA必考的vimtutor命令深度解析:从考试准入到生产自动化

RHCA必考的vimtutor命令深度解析:从考试准入到生产自动化

1. 项目概述:为什么一个“vimtutor”命令值得单独写一篇RHCA级教程?在红帽认证架构师(RHCA)的实战现场,我见过太多人卡在同一个地方——不是不会配Ansible Playbook,不是搞不定OpenShift Operator&#xff…

2026/7/8 7:37:24 阅读更多 →
为什么KMS_VL_ALL_AIO成为Windows和Office激活的终极解决方案?

为什么KMS_VL_ALL_AIO成为Windows和Office激活的终极解决方案?

为什么KMS_VL_ALL_AIO成为Windows和Office激活的终极解决方案? 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 在数字化办公环境中,Windows操作系统和Microsoft Office套…

2026/7/8 7:35:24 阅读更多 →

日新闻

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: …

2026/7/8 0:00:48 阅读更多 →
MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N1 到批处理的全路径 一、从"功能正确"到"性能可接受"——MyBatis 批量操作的三段式进化 MyBatis 在日常增删改查场景中几乎是无感的——实体映射直观、SQL 控制灵活。但当数据量从千级上升到十万级、百万级,许…

2026/7/8 0:00:48 阅读更多 →
工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

1. 工业负载控制方案概述在工业自动化、电机驱动和照明控制等高需求场景中,可靠地控制电感和电阻负载是核心挑战之一。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18F45K22微控制器,能够构建一套稳定、高效的负载控制系统。这套组合…

2026/7/8 0:02:48 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻