惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
云风的 BLOG
云风的 BLOG
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
P
Palo Alto Networks Blog
D
Docker
H
Hackread – Cybersecurity News, Data Breaches, AI and More
S
Schneier on Security
Engineering at Meta
Engineering at Meta
I
InfoQ
L
LangChain Blog
Cyberwarzone
Cyberwarzone
T
Tenable Blog
WordPress大学
WordPress大学
P
Privacy & Cybersecurity Law Blog
罗磊的独立博客
Apple Machine Learning Research
Apple Machine Learning Research
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Jina AI
Jina AI
C
CERT Recently Published Vulnerability Notes
Scott Helme
Scott Helme
博客园 - 三生石上(FineUI控件)
酷 壳 – CoolShell
酷 壳 – CoolShell
Know Your Adversary
Know Your Adversary
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Last Watchdog
The Last Watchdog
Last Week in AI
Last Week in AI
Cloudbric
Cloudbric
S
SegmentFault 最新的问题
爱范儿
爱范儿
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - 叶小钗
AI
AI
T
Tor Project blog
I
Intezer
T
Threatpost
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
Visual Studio Blog
N
News and Events Feed by Topic
Latest news
Latest news
S
Security Affairs
博客园 - Franky
Microsoft Security Blog
Microsoft Security Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
B
Blog RSS Feed
C
Cybersecurity and Infrastructure Security Agency CISA
Hugging Face - Blog
Hugging Face - Blog
小众软件
小众软件
S
Securelist

博客园 - timseng

ai辅助升级前端安全更新(贼快!hh openclaw的token又耗完了,先不冲了,记录下折腾踩坑过程 (如果需要协助安装500,帮忙卸载250[doge]) VS Code我的配置(持续更新) springboot升级3x导致邮件发送失败:错误1 jakarta.mail.NoSuchProviderException: smtp nice du更好的du分析文件占用工具ncdu 使用MITMProxy转发https请求到本地、保存鉴权给本地请求(二) 前端发布shell脚本 virtualBox环境Ubuntu升级后太卡,转debian很丝滑 收藏:加不加「/」?Nginx location 路径与 proxy_pass 的规律 使用visjs分析flowable流程数据 浏览器标签页多行显示:使用Floorp浏览器 最先进的跨平台 Firefox 衍生品 开源之光 开源WAF:ModSecurity探究与部署 动态条件实现java mysql备份恢复云端之核心:更新扫描MySQL库里的所有表的UPDATE_TIME,若发生变动就mysqldump 使用MITMProxy转发请求到本地、保存鉴权给本地请求 这款Ubuntu的默认壁纸水母是真漂亮啊 笑死!'m not going to tell you who, but I know someone who recently locked himself out of the system he was using for an article covering iptables by forgetting the SSH rule. itext的PdfPCell中设置行间距失败的问题 Java递归函数计算递归次数出错
推广:flowable工作流引擎就是高级版本的数据库而已(一)
timseng · 2025-08-05 · via 博客园 - timseng

flowable 和mysql的类比 数据库都用过吧,定义好表之后就可以增删改查了,一行一行的数据

flowable高级一些,可以把逻辑定义好之后,就可以启动、驱动、结束、并接收回调通知

 Flowable 和 MySQL 确实可以这样对比理解,但 Flowable 更偏向于 “业务流程的自动化管理”,而 MySQL 是纯粹的 “数据存储与操作”。以下是具体类比和差异分析:


1. 基础类比:数据 vs 流程

MySQLFlowable
定义表结构(如 userorder 定义流程模型(BPMN 图,如请假流程)
插入一行数据(INSERT 启动一个流程实例(runtimeService.startProcessInstance()
更新数据(UPDATE 驱动流程到下一步(taskService.complete(taskId)
查询数据(SELECT 查询流程状态(historyService 查历史记录)
删除数据(DELETE 终止流程(runtimeService.deleteProcessInstance()

2. 核心差异:Flowable 的“高级”特性

(1) 逻辑预定义

  • MySQL:需要手动编写代码实现业务逻辑(如“订单支付后更新库存”)。

  • Flowable:直接在 BPMN 流程图 中定义逻辑(如网关判断、服务任务调用),引擎自动执行。

(2) 状态驱动

  • MySQL:数据是静态的,需外部代码控制状态流转(如 status 字段从 待审核 改为 已通过)。

  • Flowable:流程引擎自动管理状态(如从 提交申请 → 经理审批 → HR归档)。

(3) 监听与回调

  • MySQL:需依赖触发器(Trigger)或应用层事件(如 Spring Event)。

  • Flowable:原生支持监听器(Listener),在流程节点触发时自动回调(如 审批通过后发送邮件)。

(4) 历史追踪

  • MySQL:需手动设计历史表或日志表。

  • Flowable:自动记录流程历史(ACT_HI_* 表),支持回溯。


3. 具体场景示例

场景:员工请假审批

  • MySQL 实现:

    1. 创建表 leave_apply(字段:iduser_iddaysstatus)。

    2. 代码中硬编码状态流转逻辑(如 status=1 时通知经理审批)。

    3. 需手动处理超时、撤回等异常情况。

  • Flowable 实现:

    1. 绘制 BPMN 流程图(用户提交 → 经理审批 → 自动归档)。

    2. 启动流程后,引擎自动推动审批,处理超时(边界事件)、回调通知。

    3. 通过 ACT_RU_TASK 表查看当前任务,ACT_HI_PROCINST 表查看历史。


4. 协作关系

  • MySQL 是 Flowable 的底层存储:
    Flowable 本身依赖数据库(默认使用 MySQL/Oracle 等),所有流程数据(如运行中的任务、历史记录)均存储在表中(ACT_* 前缀的表)。

  • 配合使用:

    • Flowable 管理流程,MySQL 存储业务数据(如 leave_apply 的详细数据)。

    • 通过 流程变量(Variables) 关联业务数据(如 flowable.setVariable("leaveId", 123))。


5. 总结

维度MySQLFlowable
核心功能 数据存储与操作 业务流程自动化
灵活性 高(需手动编码逻辑) 中(依赖预定义流程)
适用场景 通用数据管理 审批流、工单系统、自动化任务
复杂度 高(需学习 BPMN、引擎 API)

一句话总结:
MySQL 是“数据库工具”,而 Flowable 是“业务流程自动化工具”——它基于数据库,但抽象了状态管理和逻辑驱动层,让你从手动维护 status 字段的泥潭中解脱出来!

flowable 和mysql的类比 数据库都用过吧,定义好表之后就可以增删改查了,一行一行的数据 flowable高级一些,可以把逻辑定义好之后,就可以启动、驱动、结束、并接收回调通知

你的类比很形象!Flowable 和 MySQL 确实可以这样对比理解,但 Flowable 更偏向于 “业务流程的自动化管理”,而 MySQL 是纯粹的 “数据存储与操作”。以下是具体类比和差异分析:


1. 基础类比:数据 vs 流程

MySQLFlowable
定义表结构(如 userorder 定义流程模型(BPMN 图,如请假流程)
插入一行数据(INSERT 启动一个流程实例(runtimeService.startProcessInstance()
更新数据(UPDATE 驱动流程到下一步(taskService.complete(taskId)
查询数据(SELECT 查询流程状态(historyService 查历史记录)
删除数据(DELETE 终止流程(runtimeService.deleteProcessInstance()

2. 核心差异:Flowable 的“高级”特性

(1) 逻辑预定义

  • MySQL:需要手动编写代码实现业务逻辑(如“订单支付后更新库存”)。

  • Flowable:直接在 BPMN 流程图 中定义逻辑(如网关判断、服务任务调用),引擎自动执行。

(2) 状态驱动

  • MySQL:数据是静态的,需外部代码控制状态流转(如 status 字段从 待审核 改为 已通过)。

  • Flowable:流程引擎自动管理状态(如从 提交申请 → 经理审批 → HR归档)。

(3) 监听与回调

  • MySQL:需依赖触发器(Trigger)或应用层事件(如 Spring Event)。

  • Flowable:原生支持监听器(Listener),在流程节点触发时自动回调(如 审批通过后发送邮件)。

(4) 历史追踪

  • MySQL:需手动设计历史表或日志表。

  • Flowable:自动记录流程历史(ACT_HI_* 表),支持回溯。


3. 具体场景示例

场景:员工请假审批

  • MySQL 实现:

    1. 创建表 leave_apply(字段:iduser_iddaysstatus)。

    2. 代码中硬编码状态流转逻辑(如 status=1 时通知经理审批)。

    3. 需手动处理超时、撤回等异常情况。

  • Flowable 实现:

    1. 绘制 BPMN 流程图(用户提交 → 经理审批 → 自动归档)。

    2. 启动流程后,引擎自动推动审批,处理超时(边界事件)、回调通知。

    3. 通过 ACT_RU_TASK 表查看当前任务,ACT_HI_PROCINST 表查看历史。


4. 协作关系

  • MySQL 是 Flowable 的底层存储:
    Flowable 本身依赖数据库(默认使用 MySQL/Oracle 等),所有流程数据(如运行中的任务、历史记录)均存储在表中(ACT_* 前缀的表)。

  • 配合使用:

    • Flowable 管理流程,MySQL 存储业务数据(如 leave_apply 的详细数据)。

    • 通过 流程变量(Variables) 关联业务数据(如 flowable.setVariable("leaveId", 123))。


5. 总结

维度MySQLFlowable
核心功能 数据存储与操作 业务流程自动化
灵活性 高(需手动编码逻辑) 中(依赖预定义流程)
适用场景 通用数据管理 审批流、工单系统、自动化任务
复杂度 高(需学习 BPMN、引擎 API)

一句话总结:
MySQL 是“数据库工具”,而 Flowable 是“业务流程自动化工具”——它基于数据库,但抽象了状态管理和逻辑驱动层,让你从手动维护 status 字段的泥潭中解脱出来!

image