| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> BPMN Events(一)——Camunda Workflow开发实践 -> 正文阅读 |
|
[开发测试]BPMN Events(一)——Camunda Workflow开发实践 |
前言我在前面详细的介绍了几种网关和任务,其中的排他网关,并行网关,包容网关都属于基于数据的网关(Data-based inclusive gateways),它们必须依赖现有的条件做出选择。BPMN Process Token与Gateway——Camunda Workflow 开发实践_郭麻花的博客-CSDN博客 在上篇博客的末尾,我介绍了一种无法结束Workflow Instance的情况,那种情况应如何解决呢。 这次,我主要来介绍一些基于事件的网关,BPMN当中事件主要分为两类,Catching events 和 Throwing events。 Message?Event消息对于做过微服务的同学来说并不陌生,我们可以利用RabbitMQ来搭建一个分布式消息总线,以此来实现事件驱动的程序设计,BPMN当中也为我们提供了几种基于Message的事件。 Message Intermediate Catch Event如图所示,我添加了一个Message Intermediate Catch event在Task A之后,它会一直等待Message的出现才会往下进行。? 使用Postman查询当前订阅消息事件,并触发。 Message Boundary Event(Interrupting)将上图中的Message Event拖拽到Task A上,它就会自动从Intermediate Event变为Boundary Event。 ? ?
这是Boundary Event的一个重要形式,它是Event-based Gateways当中的一种方式。 当然Message Boundary Event(Interrupting)还有一种non-Interrupting模式 Message Boundary Event(non-Interrupting)这种non-Interrupting模式的特点是:Message事件发生,ProcessToken会复制而不是直接向下传递。 Timer?Intermediate?EventTimer 有三种模式 1. Date(定时执行)?
2. Duration(逾期执行)
3. Cycle(循环执行) ? 重复3次,每次间隔10 小时
?也可以使用 cron 表达式指定时间周期,如从整小时开始的每 5 分钟触发一次触发器:
Timer Event的种类同时Timer与Message极为类似,同样分为Intermediate 和 Boundary 两种。Boundary又分为Interrupting 和 non-Interrupting。这里不再赘述它们的区别。 1. Timer?Intermediate Event Task A完成,ProcessToken复制,超时后Timer Event触发,激活Task B。 ?2. Timer Boundary Event(Interrupting) Task A未完成,超时后Timer Event触发,ProcessToken向下传递,激活Task B。 ?3.?Timer Boundary Event(non-Interrupting) Task A未完成,超时后Timer Event触发,ProcessToken复制并向下传递,循环重复激活Task B。 ? ?Conditional Event?Conditional Event是一种简单好用的Event,当我们仅仅希望等待某个条件为Ture再继续往下进行的时候,可以使用Conditional Event。 ?如上图所示,workflow会等待Price > 50条件满足才会往下进行,让我们为Instance添加一个variable: Pirce =?40。此时不满足?Conditional Event的条件,因此workflow不会往下进行。 当我们我们修改Price = 60之后,满足条件的Conditional Event才会对ProcessToken放行。 ?Termination Event在上一篇博客当中,我们讲到了两个可能会导致workflow Instance无法正常结束的例子。其实我们可以使用Termination Event来终止workflow当中多余的任务。 ?如图,不同于End Event, Termination Event不仅会销毁当前ProcessToken,也会将workflow当中未到达终点的ProcessToken一起销毁,从而结束整个workflow instance。 Signal EventSignal Event与message类似,它们最大的区别在于Signal 不需要消息接收者,它可以作为Start Event,开启一个新的Workflow Instance。
? ? |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 1:42:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |