Activiti 引擎事件监听模型代码走读

Activiti 自定义事件监听和邮件通知 Activiti 自定义事件监听和邮件通知参照Activiti官方文档https://www.activiti.org/userguide/#eventDispatcher首先,建立我们的需求。即当有任务创建、分配、完成时,邮件通知对应用户。完成步骤如下: Activiti为我们提供了事件监听接口– ActivitiEventListener org.activiti.engine.delegat 阅读详情

一、ActivitiEventDispatcher发布事件

ProcessEngineConfigurationImpl 持有ActivitiEventDispatcher引用,成员属性名为eventDispatcher。

CommandContext为线程级的,CommandContext又持有ProcessEngineConfigurationImpl 引用。

->CommandContext可通过ProcessEngineConfigurationImpl 获取ActivitiEventDispatcher

例子:

TaskEntity.insert中会发布一个事件,代码如下:

commandContext.getProcessEngineConfiguration().getEventDispatcher().dispatchEvent(

       ActivitiEventBuilder.createEntityEvent(ActivitiEventType.ENTITY_CREATED, this));

其中TaskEntity.insert的被调用过程为:

UserTaskActivityBehavior.execute->TaskEntity.createAndInsert(execution)->TaskEntity.insert


二、ActivitiEventDispatcherImpl的实现

1、ActivitiEventDispatcherImpl的具体实现实在其成员属性ActivitiEventSupport中定义。

2、ActivitiEventSupport实例内部维护了一个监听器集合成员属性和一个键值对集合:protected List<ActivitiEventListener> eventListeners;protected Map<ActivitiEventType, List<ActivitiEventListener>> typedListeners;

添加删除监听器都是操作这两个集合。

3、发布事件通过ActivitiEventSupport.dispatchEvent,该方法会调用两个集合中事件相关的监听器的onEvent(event)方法,


三、监听器注册 

ActivitiEventDispatcherImpl.addEventListener


四、新建一个task在工作流引擎中的调用堆栈

TaskEventsTest


新建一个task在工作流引擎中的调用堆栈

TaskEntity.create(Date) line: 166

NewTaskCmd.execute(CommandContext) line: 38

NewTaskCmd.execute(CommandContext) line: 1

CommandInvoker.execute(CommandConfig, Command<T>) line: 24

CommandContextInterceptor.execute(CommandConfig, Command<T>) line: 57

LogInterceptor.execute(CommandConfig, Command<T>) line: 37

CommandExecutorImpl.execute(CommandCo

Activiti学习资料(组件,API,部署) Activiti学习资料14(组件介绍,API) Activiti 组件介绍 activiti 项目由三种类型的组件组成, 分别是: 专用工具 (Dedicated Tools) 、 存储内容(St 具 ored Content) 、协作工(Collaboration Tool) 。 专用工具( 专用工具(Dedicated Tools)组件 ) 此类组件,包括(内容管理)Al 阅读详情

相关推荐

国产蓝牙MCU选型避坑指南:从汇顶到杰理,这7家厂商的实测体验

本文基于一线开发者对汇顶、泰凌微、沁恒、博通集成、奉加微、杰理、翱捷等七家主流国产蓝牙MCU厂商的实测体验,提供了一份详实的选型避坑指南。文章不仅对比了各厂商芯片的SDK质量、文档、开发工具与技术支持等“软实力”,还深入剖析了实际开发中可能遇到的功耗、射频、版本兼容性等核心痛点,并针对不同项目需求给出了具体的选型决策建议,旨在帮助工程师高效完成国产蓝牙MCU选型。

u5v6w7的博客 320

疯狂Activiti6.0连载(23)BPMN事件分类与事件定义

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34184158的博客 892

1、JMP脚本编程全面指南:从基础到高级应用

本博客全面介绍了JMP脚本编程的各个方面,从JMP基础和JSL入门,到数据类型、数据结构、编程方法、数据表操作、图形与三维场景脚本,再到应用程序创建与扩展功能。内容涵盖脚本工具使用、常见任务实现、兼容性说明及未来发展趋势,旨在帮助用户掌握JMP脚本语言的强大功能,提升数据分析的自动化与定制化能力。适合从初学者到高级用户的深入学习与实践参考。

flink9streamer的博客 225

Activiti中的事件监听

工作流程事件监听可用于任务提醒、超时提醒等的模块的设计。 其默认的事件监听接口:org.activiti.engine.delegate.event.ActivitiEventListener 事件类型:org.activiti.engine.delegate.event.ActivitiEventType,事件类型是一个枚举类型,其中包含了42种类型 public enum Activi...

北辰 3001

activiti学习笔记(六) 监听器

activiti全局监听器 全局监听器主要使用的场景就是监控这个流程的启动和结束。流程开始的时候可以监控,流程结束的时候也可以监控 监听器的接口 public interface ActivitiEventListener { /**当时间被执行时调用该方法*/ void onEvent(ActivitiEvent event); /** * @author 郑小康

jack_Zheng的博客 2379

学习篇-Activiti-14-事件监听

文章目录一、事件监听二、具体实现1. eventListeners实现2. typedEventListeners实现3. 代码动态添加addEventListener和dispatchEvent 一、事件监听 事件及监听器原理 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g5j0R2aC-1594615223101)(…/activiti-imgs/image-20200713123525799.png)] 配置Listener eventListeners:监

东东爱编码博客 1201

activiti流程运行过程代码走读

1. 目的 本文将对流程在activiti中是怎么运行的,任务是怎样推动的进行讲解。 主要包括以下内容: PVM中怎么表示流程、任务、连接线,它和activiti的Model怎样转换的。 启动流程实例,怎么从开始节点流转到下一个节点。 怎样监听流程事件。 2. 主要的jar包和java类 pvm的实现在包org.activiti.engine.impl.pv

makeryan的专栏 2437

Activiti开源工作流引擎面试题

Activiti是一个开源的BPM(Business Process Management)框架,可以帮助企业实现业务流程的电子化和自动化。架构Activiti架构主要分为三部分:引擎、API和公共库。其中,引擎负责执行具体任务,API提供了对外的接口与应用整合,公共库则是在大量重复代码的基础上进行其他模块的扩展。引擎(Engine):Activiti核心是一个基于Java语言的流程引擎,其负责管理和执行整个流程的过程,并支持将业务数据和任务流程相结合。引擎包含两个核心组件:任务引擎和执行引擎

yangzhihua的专栏 6325

Activiti6.0流程引擎学习——(18)activiti流程引擎的监听器配置

这篇来讲述activiti的监听器配置,主要从以下三个方面来了解: 1、事件及监听器原理 2、监听器的配置方式 3、Activiti事件监听测试实例 1、事件监听器原理 首先这里事件源与事件类型的关系我们可以这里理解:创建一个流程引擎,那么事件源就是流程引擎对象Process Engine,事件类型就是ENGINE_CREATED。创建过程中触发了 ActivitiEvent 这个...

JJBOOM425的博客 2678

三大工作流引擎技术Activiti、Flowable、Camunda选型指南

文章目录前言1 流程引擎发展历程2 流程引擎主要概念BPM (Business Process Management)BPMN (Business Process Model and Notation)CMMN (Case Management Model and Notation)DMN (Decision Model and Notation)事件(Event)顺序流(Sequence Flow)网关(Gateway)活动(Activity)3 Activiti3.1 概述3.2 整体架构3.3 数据库

qq_38055805的博客 2万+

【知识科普】工作流引擎activiti详细介绍

Activiti是一个开源的工作流引擎,它为企业应用提供了强大的工作流管理功能。Activiti旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),并面对新技术的机遇,诸如互操作性和云架构,提供技术实现。它是一个灵活、可扩展且易于使用的工作流引擎,能够帮助企业实现业务流程的自动化和优化。绘制流程图使用BPMN 2.0规范绘制审批流程图,明确各个任务节点、审批人、决策点等。你可以使用Activiti提供的流程图编辑器或其他BPMN编辑器来完成这一步骤。部署流程图。

wendao76的专栏 4382

Activiti工作流引擎的优缺点

Activiti

Stone3625的博客 3129

flowable、activiti、camunda 三大工作流引擎技术选型指南

在选择Activiti、Camunda还是Flowable时,您应根据具体需求进行权衡。如果您注重流程的直观建模和易用性,同时希望有丰富的社区资源和插件库支持,那么Camunda可能是一个不错的选择。如果您需要高性能和可扩展的解决方案,并且对商业支持和服务有较高要求,那么Camunda的商业版或Flowable可能是更适合您的选项。而如果您正在寻找一个轻量级且易于集成的工作流引擎,并且愿意接受一定程度的配置和部署复杂性,那么Activiti仍然是一个值得考虑的选项之一。

码到三十五 14万+

Activiti 工作流引擎入门二

activiti工作流引擎提高篇

weixin_55986032的博客 954

Activiti监听器使用

一、前言 上一篇在讲分配处理人时其实就已经有用到监听器了,Activiti最灵活的点便是其提供了多种多样的监听器及对应的监听事件,能实现绝大部分业务需求,因此学会使用监听器也是掌握Activiti非常重要的一个步骤。 二、监听器使用场景 在使用Activiti时,其通常作为底层引擎使用,而引擎通常与业务是分开的,因此需要引擎去推动业务,即流程执行到某个阶段时,我们才去执行相对应的业务逻辑,这便依赖Activiti的监听器。常见的场景有: 1、环节人员动态分配 2、某个环节开始或结束时需要记录环节信

bobozai86的博客 9354

Activiti6.0 事件详解

文末提供 activiti学习视频下载 文章目录1. 事件监听器实现2. 配置与安装3. 在运行阶段添加监听器4. 为流程定义添加监听器4.1 让监听器执行用户定义的逻辑4.2 监听抛出BPMN事件4.3 流程定义中监听器的注意事项5. 通过API分发事件6. 支持的事件类型7. 附加信息 Activiti引擎中的事件机制使您可以在引擎中发生各种事件时得到通知,这是高级应用部分,可以让我们扩展一些我们的自定义逻辑,下面章节会有所有受支持的事件类型及其描述。 可以为某些类型的事件注册侦听器,而不是在分派.

laker的博客 2652

Activiti工作流Day02-Activiti配置

Activiti工作流配置创建ProcessEngineProcessEngineConfiguration bean数据库配置定义数据库配置参数使用javax.sql.DataSource配置JNDI数据库配置JNDI的使用JNDI的配置Activiti支持的数据库创建数据库表数据库表名理解数据库升级启用Job执行器配置邮件服务器配置历史存储表达式和脚本暴露配置配置部署缓存日志映射诊断上下文事件...

攻城狮Chova的博客 1304

Activiti 工作流引擎 ~ 官方demo学习

Activiti 工作流引擎 官方demo学习 本文使用的Activiti版本为5.22.0 Activiti 官方网站 Activiti-5.22.0 源码 Vaadin 官方网站 Vaadin Web应用开发教程(3):Vaadin应用程序框架介绍 Activiti 官方demo中使用Vaadin作为前端框架进行页面展示 Activiti 官方下载的文件目录如下,在war...

不务正业的野猴子 3683

Activiti工作流引擎插件深度解析与实战应用

Activiti是一个轻量级、可嵌入的开源工作流引擎,基于Java开发,专为业务流程管理(BPM)场景设计。其核心运行时由驱动,通过解析符合BPMN 2.0规范的XML流程定义,实现流程实例的创建、执行与状态追踪。BPMN 2.0(Business Process Model and Notation)作为国际标准,以图形化符号描述业务流程逻辑,支持任务、网关、事件等元素的语义建模,并通过标准化的XML格式实现跨平台交换。上述代码展示了Activiti引擎初始化及核心服务获取方式。

weixin_36123300的博客 998

Activiti7工作流+SpringBoot

一、Activiti介绍: Activiti是基于Apache许可的开源BPM平台,创始人Tom Baeyens原是JBPM架构师,可以理解为与JBPM出自同一祖师爷。它提供了Eclipse插件,开发可以通过插件直接绘制业务流程图。基于Spring,ibatis等框架,并在此之上构建了非常清晰的开发框架。是由Alfresco软件发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务...

qq_40451631的博客 9万+

华为光猫单口千兆HG8310M固件通用英文版带shell,支持GPON/EPON支持web升级

留言下载jacelift@qq.com华为光猫单口千兆HG8310M固件通用英文版带shell,支持GPON/EPON支持web升级版本:V3R017C00S100带shelltelnet 账号密码:root/admin使用方法:直接在web界面升级即可!!!

上一篇: 捕获线程中的异常
下一篇: mysql Error Code: 1093. You can't specify target table 'base_extend' for update in FROM clause 0.001
lxxxzzl
博客等级 码龄12年 7粉丝 89原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值