首页/新闻资讯/正文详情

Flowable 监听器使用指南

发布时间:2026/9/24 15:01:48 来源:云帆数科 栏目:资讯中心
Flowable 监听器使用指南
Flowable 监听器使用指南在 Flowable 流程引擎中监听器Listener是扩展流程行为的核心机制之一。它允许开发者在流程执行的特定时刻插入自定义逻辑而无需修改 BPMN 流程图本身。Flowable 主要提供两种监听器执行监听器ExecutionListener和任务监听器TaskListener。理解它们的区别和适用场景是用好 Flowable 的关键。一、执行监听器ExecutionListener执行监听器关注的是流程的流转而非用户任务本身。它监听的是流程实例在执行过程中的生命周期事件比如流程启动、节点进入、节点结束、连线被选中。触发事件类型执行监听器主要有三种事件事件触发时机适用元素start节点或流程开始执行时流程、活动节点end节点或流程执行结束时流程、活动节点take连线被选中通过时顺序流SequenceFlow需要注意start和end作用于流程实例和活动节点而take只对连线有效。可获取的值执行监听器的notify方法接收DelegateExecution对象通过它你可以访问getProcessInstanceId()— 流程实例 IDgetProcessDefinitionId()— 流程定义 IDgetCurrentActivityName()— 当前活动节点的名称getBusinessKey()/getProcessBusinessKey()— 流程实例的业务标识getVariable(String)/getVariables()— 读取流程变量getEventName()— 当前触发的事件名称getParentId()— 父执行 ID用于判断是否处于子流程中典型使用场景执行监听器适合处理流程级别的技术逻辑比如流程启动时初始化业务数据、节点结束时更新外部系统状态、连线被选中时记录流转日志等。由于它不直接关联用户任务因此无法获取任务级别的信息如候选人、办理人等。二、任务监听器TaskListener任务监听器专门针对用户任务监听任务自身的生命周期。如果说执行监听器关心的是“流程走到哪了”任务监听器关心的就是“任务发生了什么”。触发事件类型任务监听器的事件粒度更细事件触发时机create任务被创建所有属性设置完成后assignment任务被分配给某个办理人后complete任务完成、尚未从运行数据中删除时delete任务即将被删除前正常完成也会触发其中assignment事件在create之前触发这是因为引擎需要先确定办理人才能保证create时任务的所有属性都已就绪。可获取的值任务监听器接收DelegateTask对象它提供了丰富的任务级信息getId()— 任务 IDgetName()— 任务名称getDescription()— 任务描述getAssignee()— 当前办理人getOwner()— 任务所有者getProcessInstanceId()— 所属流程实例 IDgetExecutionId()— 关联的执行 IDgetProcessDefinitionId()— 流程定义 IDgetCreateTime()— 任务创建时间getDueDate()— 任务截止日期getPriority()— 任务优先级0-100getVariable(String)/getVariables()— 读取流程变量getEventName()— 触发监听器的事件名称getCandidates()— 候选人/候选组集合更重要的是DelegateTask提供了修改任务状态的能力setAssignee()可以动态指定办理人addCandidateUser()/addCandidateGroup()可以添加候选人或候选组setDueDate()可以设置截止时间。典型使用场景任务监听器最适合处理与用户任务紧密相关的逻辑。最经典的用法是动态分配审批人在任务create时根据表单字段或流程变量计算并设置任务的办理人。其他场景包括任务创建时发送通知、任务分配后记录操作日志、任务完成前校验数据完整性等。三、两者的核心区别理解这两种监听器的分工可以用一句话概括ExecutionListener 面向流程TaskListener 面向任务。维度ExecutionListenerTaskListener监听对象流程实例、活动节点、连线用户任务核心接口DelegateExecutionDelegateTask能否操作任务不能能设置办理人、候选人等能否获取任务信息不能能任务名称、办理人、截止日期等典型用途流程级业务逻辑、状态同步动态分配、通知、任务校验在选择时一个简单的判断标准是如果你的逻辑需要知道“谁在处理这个任务”或者“这个任务是什么”就用 TaskListener如果只关心“流程走到了哪个节点”用 ExecutionListener 即可。四、配置方式说明无论哪种监听器在 BPMN 中都有三种配置方式分别适用于不同的项目结构class 方式直接指定 Java 类的全限定名。适合简单的、无需依赖注入的场景。delegateExpression 方式使用${beanName}指向一个 Spring Bean。在 Spring Boot 项目中推荐这种方式因为可以方便地注入 Service、Repository 等组件。expression 方式直接写表达式如${myService.process(task)}。适合逻辑简单、单次调用的场景不建议在 expression 中写复杂业务逻辑。五、写在最后Flowable 的监听器机制本质上是一种事件驱动的扩展点。它把流程引擎的标准行为与业务自定义逻辑解耦开来引擎负责流转监听器负责在恰当的时机执行你的代码。用好监听器的关键在于选对类型。流程级的动作交给 ExecutionListener任务级的动作交给 TaskListener。如果混淆了两者轻则代码别扭重则出现“在 TaskListener 里拿不到节点信息”或者“在 ExecutionListener 里想改任务办理人改不了”的尴尬局面。希望这份指南能帮你理清 Flowable 监听器的使用脉络。

相关推荐

django-cms 3.4.4 升级指南:Page 方法与 Placeholder 工具函数的破坏性变更全解析
django-cms 3.4.4 升级指南:Page 方法与 Placeholder 工具函数的破坏性变更全解析

CMS后端 【免费下载链接】django-cms The easy-to-use and developer-friendly enterprise CMS powered by Django 项目地址: https://gitcode.com/gh_mirrors/dj/django-cms 点击查看 免费下载 本文以 django-cms 官方升级文档 docs/upgrade/3.4.4.rst 为主体&am… · 2026/9/24 15:01:48

Erlang/OTP Public_Key 应用深度指南:公钥基础设施、PKIX 证书链与数字签名
Erlang/OTP Public_Key 应用深度指南:公钥基础设施、PKIX 证书链与数字签名

编程语言语言运行时标准库编译器并发编程 【免费下载链接】otp Erlang/OTP 项目地址: https://gitcode.com/gh_mirrors/ot/otp 点击查看 免费下载 导读 本文围绕 Erlang/OTP 中负责公钥基础设施(Public Key Infrastructure)的 public_key 应… · 2026/9/24 15:01:48

OpenCV 扩展图像处理模块 ximgproc 全指南:从边缘检测到超像素的 18 项算法能力
OpenCV 扩展图像处理模块 ximgproc 全指南:从边缘检测到超像素的 18 项算法能力

OpenCV 扩展图像处理模块 ximgproc 全指南:从边缘检测到超像素的 18 项算法能力 【免费下载链接】opencv_contrib Repository for OpenCVs extra modules 项目地址: https://gitcode.com/gh_mirrors/op/opencv_contrib 本篇技术指南围绕 OpenCV 扩展模块 xim… · 2026/9/24 15:01:48

奥赛一本通 1467 Radio Transmission
奥赛一本通 1467 Radio Transmission

1467 Radio Transmission 题目大意 给定一个字符串,求一个长度尽可能短的串,使得原先的串是这个短串重复若干次之后的子串。 知识要点 KMP 解题思路 首先,求解的这个短串一定可以是原串的前缀,如果不是前缀的话,将这个… · 2026/9/24 15:31:29

STM32无DAC怎么办?用PWM加RC滤波实现低成本模拟输出
STM32无DAC怎么办?用PWM加RC滤波实现低成本模拟输出

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 15:31:29

pcapng 导入 Wireshark 全是密文怎么办?Traceeagle与 Wireshark 联动的三种方式
pcapng 导入 Wireshark 全是密文怎么办?Traceeagle与 Wireshark 联动的三种方式

把抓到的流量导出成 pcapng 发给同事,他 Wireshark 一打开:全是密文。这个场面,抓过包的人多少都遇到过——文件没问题、Wireshark 也没问题,缺的是解密密钥:导出的文件里没带上它,Wireshark 拿着一堆密文包… · 2026/9/24 15:31:29

CCX源码架构指南:Go+Vue3核心模块职责与请求生命周期全链路详解
CCX源码架构指南:Go+Vue3核心模块职责与请求生命周期全链路详解

CCX源码架构指南:GoVue3核心模块职责与请求生命周期全链路详解 【免费下载链接】ccx Claude / Codex / Gemini API Proxy - CCX 项目地址: https://gitcode.com/gh_mirrors/cc/ccx CCX 是一款开源的 Claude / Codex / Gemini API 代理与协议转换网关&#xf… · 2026/9/24 15:31:16

GTK4 截图工具
GTK4 截图工具

0 前言 GTK4本身不提供屏幕捕获API:截图走哪条路,取决于会话跑在X11还是Wayland——前者没有安全隔离,Xlib直抓根窗口即可;后者出于安全考虑把像素锁在合成器里,应用只能由xdg-desktop-portal代劳。GTK4的价值在捕获前后:用GdkPixbuf承载与处理像素,用GskRenderer把自家… · 2026/9/24 15:31:10

Apache Thrift 在 CentOS 上的源码编译安装完整指南
Apache Thrift 在 CentOS 上的源码编译安装完整指南

Apache Thrift 在 CentOS 上的源码编译安装完整指南 【免费下载链接】thrift Apache Thrift 项目地址: https://gitcode.com/gh_mirrors/thrift2/thrift 导读 本文基于仓库中的官方安装文档 doc/install/centos.md,系统梳理在 CentOS 6.5 最小化安装环境下从… · 2026/9/24 15:31:03

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码