前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Flowable BPMN相关知识

Flowable BPMN相关知识

作者头像
Li_XiaoJin
发布于 2022-06-10 13:30:43
发布于 2022-06-10 13:30:43
2.9K0
举报
文章被收录于专栏:Lixj's BlogLixj's Blog

最近在了解工作流相关的知识,记录一下。这里主要复制的官方文档,后面项目中使用后再来写个人理解和感受。 关于Flowable的介绍和BPMN 2.0相关的一些记录。 Flowable文档地址

Flowable

Flowable是什么?

Flowable是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据,等等。

BPMN 2.0介绍

BPMN是什么

BPMN是一个广泛接受与支持的,展现流程的注记方法。BPMN标准

BPMN(业务流程建模符号):通过使⽤用简单的图形符号将业务流程转换为可视化图形,让业务流程建模变得简单化、图形化,负责的建模过程变得可视化。

BPMN 2.0 结构

事件

事件(event)通常用于为流程生命周期中发生的事情建模。事件总是图形化为圆圈。在BPMN 2.0中,有两种主要的事件分类:捕获(catching)抛出(throwing)事件。

  • 捕获: 当流程执行到达这个事件时,会等待直到触发器动作。触发器的类型由其中的图标,或者说XML中的类型声明而定义。捕获事件与抛出事件显示上的区别,是其内部的图标没有填充(即是白色的)。
  • 抛出: 当流程执行到达这个事件时,会触发一个触发器。触发器的类型,由其中的图标,或者说XML中的类型声明而定义。抛出事件与捕获事件显示上的区别,是其内部的图标填充为黑色。

启动事件

启动事件(start event)是流程的起点。启动事件的类型(流程在消息到达时启动,在指定的时间间隔后启动,等等),定义了流程如何启动,并显示为启动事件中的小图标。在XML中,类型由子元素声明来定义。

启动事件随时捕获:启动事件(保持)等候,直到特定的触发器被触发。

启动事件分类:

空启动事件

“空”启动事件(none Start Event),指的是未指定启动流程实例触发器的启动事件。引擎将无法预知何时启动流程实例。空启动事件用于流程实例通过调用下列startProcessInstanceByXXX API方法启动的情况。

定时器启动事件

定时器启动事件(timer start event)在指定时间创建流程实例。在流程只需要启动一次,或者流程需要在特定的时间间隔重复启动时,都可以使用。

请注意:子流程不能有定时器启动事件。 请注意:定时器启动事件,在流程部署的同时就开始计时。不需要调用startProcessInstanceByXXX就会在时间启动。调用startProcessInstanceByXXX时会在定时启动之外额外启动一个流程。 请注意:当部署带有定时器启动事件的流程的更新版本时,上一版本的定时器作业会被移除。这是因为通常并不希望旧版本的流程仍然自动启动新的流程实例。

信号启动事件

信号启动事件(signal start event),使用具名信号启动流程实例。这个信号可以由流程实例中的信号抛出中间事件(intermediary signal throw event),或者API(runtimeService.signalEventReceivedXXX方法)触发。两种方式都会启动所有拥有相同名字信号启动事件的流程定义。

消息启动事件

消息启动事件(message start event)使用具名消息启动流程实例。消息名用于选择正确的启动事件。

异常启动事件

错误启动事件(error start event),可用于触发事件子流程(Event Sub-Process)。错误启动事件不能用于启动流程实例

错误启动事件总是中断。

升级启动事件

条件启动事件

Start event registry event

待查找资料

结束事件

结束事件(end event)标志着流程或子流程中一个分支的结束。结束事件总是抛出(型)事件。这意味着当流程执行到达结束事件时,会抛出一个结果。结果的类型由事件内部的黑色图标表示。在XML表示中,类型由子元素声明给出。

结束事件分类

空结束事件

“空”结束事件(none end event),意味着当到达这个事件时,没有特别指定抛出的结果。因此,引擎除了结束当前执行分支之外,不会多做任何事情。

结束错误事件

当流程执行到达错误结束事件(error end event)时,结束执行的当前分支,并抛出错误。这个错误可以由匹配的错误边界中间事件捕获。如果找不到匹配的错误边界事件,将会抛出异常。

结束升级事件

结束取消事件

取消结束事件(cancel end event)只能与BPMN事务子流程(BPMN transaction subprocess)一起使用。当到达取消结束事件时,会抛出取消事件,且必须由取消边界事件(cancel boundary event)捕获。取消边界事件将取消事务,并触发补偿(compensation)。

结束终止事件

到达终止结束事件(terminate end event)时,当前的流程实例或子流程会被终止。也就是说,当执行到达终止结束事件时,会判断第一个范围 scope(流程或子流程)并终止它。请注意在BPMN 2.0中,子流程可以是嵌入式子流程,调用活动,事件子流程,或事务子流程。有一条通用规则:当存在多实例的调用过程或嵌入式子流程时,只会终止一个实例,其他的实例与流程实例不会受影响。

中间捕捉事件

中间捕捉事件分类:

中间计时器捕获事件

定时器捕获中间事件(timer intermediate catching event)的行为像是跑表。当执行到达捕获事件时,启动定时器;当定时器触发时(例如在一段时间间隔后),沿定时器中间事件的出口顺序流继续执行。

中间信号捕获事件

信号捕获中间事件(signal intermediate catching event),捕获与其引用的信号定义具有相同信号名称的信号。

请注意:与其他事件如错误事件不同,信号在被捕获后不会被消耗。如果有两个激活的信号中间事件,捕获相同的信号事件,则两个中间事件都会被触发,哪怕它们不在同一个流程实例里。

中间消息捕获事件

消息捕获中间事件(message intermediate catching event),捕获特定名字的消息。

中间条件捕获事件

待查询资料

中间抛出事件

抛出中间事件由下列元素定义:

  • (流程范围内)唯一的标识符
  • 定义了抛出中间事件类型的,形如XXXEventDefinition的XML子元素(例如signalEventDefinition等)。查阅特定中间抛出事件类型,以了解更多细节。

分类为:

空抛出中间事件/中间无抛出事件

下面的流程图展示了空抛出中间事件(intermediate throwing none event)的简单例子。其用于指示流程已经到达了某种状态。

中间信号抛出事件

信号抛出中间事件(signal intermediate throwing event),抛出所定义信号的信号事件。

在Flowable中,信号会广播至所有的激活的处理器(也就是说,所有的信号捕获事件)。可以同步或异步地发布信号。

  • 在默认配置中,信号同步地传递。这意味着抛出信号的流程实例会等待,直到信号传递至所有的捕获信号的流程实例。所有的捕获流程实例也会在与抛出流程实例相同的事务中,也就是说如果收到通知的流程实例中,有一个实例产生了技术错误(抛出异常),则所有相关的实例都会失败。
  • 信号也可以异步地传递。这是由到达抛出信号事件时的发送处理器来决定的。对于每个激活的处理器,JobExecutor会为其存储并传递一个异步通知消息(asynchronous notification message),即作业(Job)。

中间升级抛出事件

补偿抛出中间事件

补偿抛出中间事件(compensation intermediate throwing event)用于触发补偿。

触发补偿:既可以为设计的活动触发补偿,也可以为补偿事件所在的范围触发补偿。补偿由活动所关联的补偿处理器执行。

  • 活动抛出补偿时,活动关联的补偿处理器将执行的次数,为活动成功完成的次数。
  • 抛出补偿时,当前范围中所有的活动,包括并行分支上的活动都会被补偿。
  • 补偿分层触发:如果将要被补偿的活动是一个子流程,则该子流程中所有的活动都会触发补偿。如果该子流程有嵌套的活动,则会递归地抛出补偿。然而,补偿不会传播至流程的上层:如果子流程中触发了补偿,该补偿不会传播至子流程范围外的活动。BPMN规范指出,对“与子流程在相同级别”的活动触发补偿。
  • 在Flowable中,补偿按照执行的相反顺序运行。这意味着最后完成的活动会第一个补偿。
  • 可以使用补偿抛出中间事件补偿已经成功完成的事务子流程。

请注意:如果抛出补偿的范围中有一个子流程,而该子流程包含有关联了补偿处理器的活动,则当抛出补偿时,只有该子流程成功完成时,补偿才会传播至该子流程。如果子流程内嵌套的部分活动已经完成,并附加了补偿处理器,但包含这些活动的子流程还没有完成,则这些补偿处理器仍不会执行。

网关

网关(gateway)用于控制执行的流向(或者按BPMN 2.0的用词:执行的“标志(token)”)。网关可以消费(consuming)生成(generating)标志。

网关用其中带有图标的菱形表示。

网关分类:

排他网关

排他网关(exclusive gateway)(也叫异或网关 XOR gateway,或者更专业的,基于数据的排他网关 exclusive data-based gateway),用于对流程中的决策建模。当执行到达这个网关时,会按照所有出口顺序流定义的顺序对它们进行计算。选择第一个条件计算为true的顺序流(当没有设置条件时,认为顺序流为true)继续流程。

请注意这里出口顺序流的含义与BPMN 2.0中的一般情况不一样。一般情况下,会选择所有条件计算为true的顺序流,并行执行。而使用排他网关时,只会选择一条顺序流。当多条顺序流的条件都计算为true时,会且仅会选择在XML中最先定义的顺序流继续流程。如果没有可选的顺序流,会抛出异常。

排他网关用内部带有’X’图标的标准网关(菱形)表示,'X’图标代表异或的含义。请注意内部没有图标的网关默认为排他网关。BPMN 2.0规范不允许在同一个流程中混合使用有及没有X的菱形标志。

并行网关

网关也可以建模流程中的并行执行。在流程模型中引入并行的最简单的网关,就是并行网关(parallel gateway)。它可以将执行分支(fork)为多条路径,也可以合并(join)多条入口路径的执行。

并行网关的功能取决于其入口与出口顺序流:

  • 分支:所有的出口顺序流都并行执行,为每一条顺序流创建一个并行执行。
  • 合并:所有到达并行网关的并行执行都会在网关处等待,直到每一条入口顺序流都到达了有个执行。然后流程经过该合并网关继续。

请注意,如果并行网关同时具有多条入口与出口顺序流,可以同时具有分支与合并的行为。在这种情况下,网关首先合并所有入口顺序流,然后分裂为多条并行执行路径。

与其他网关类型有一个重要区别:并行网关不计算条件。如果连接到并行网关的顺序流上定义了条件,会直接忽略该条件。

意思是并行网关不需要设置条件?设置了也会忽略条件直接走入分支。

并行网关,用内部带有’加号’图标的网关(菱形)表示,代表与(AND)的含义。

包容网关

可以把包容网关(inclusive gateway)看做排他网关与并行网关的组合。与排他网关一样,可以在包容网关的出口顺序流上定义条件,包容网关会计算条件。然而主要的区别是,包容网关与并行网关一样,可以同时选择多于一条出口顺序流

包容网关的功能取决于其入口与出口顺序流:

  • 分支:流程会计算所有出口顺序流的条件。对于每一条计算为true的顺序流,流程都会创建一个并行执行。
  • 合并:所有到达包容网关的并行执行,都会在网关处等待。直到每一条具有流程标志(process token)的入口顺序流,都有一个执行到达。这是与并行网关的重要区别。换句话说,包容网关只会等待可以被执行的入口顺序流。在合并后,流程穿过合并并行网关继续。

请注意,如果包容网关同时具有多条入口与出口顺序流,可以同时具有分支与合并的行为。在这种情况下,网关首先合并所有具有流程标志的入口顺序流,然后为每一个条件计算为true的出口顺序流分裂出并行执行路径。 包容网关的汇聚行为比并行网关更复杂。所有到达包容网关的并行执行,都会在网关等待,直到所有“可以到达”包容网关的执行都“到达”包容网关。 判断方法为:计算当前流程实例中的所有执行,检查从其位置是否有一条到达包容网关的路径(忽略顺序流上的任何条件)。如果存在这样的执行(可到达但尚未到达),则不会触发包容网关的汇聚行为。

包容网关,用内部带有’圆圈’图标的网关(菱形)表示。

事件网关

基于事件的网关(event-based gateway)提供了根据事件做选择的方式。网关的每一条出口顺序流都需要连接至一个捕获中间事件。当流程执行到达基于事件的网关时,与等待状态类似,网关会暂停执行,并且为每一条出口顺序流创建一个事件订阅。

请注意:基于事件的网关的出口顺序流与一般的顺序流不同。这些顺序流从不实际执行。相反,它们用于告知流程引擎:当执行到达一个基于事件的网关时,需要订阅什么事件。有以下限制:

  • 一个基于事件的网关,必须有两条或更多的出口顺序流。
  • 基于事件的网关,只能连接至intermediateCatchEvent(捕获中间事件)类型的元素(Flowable不支持在基于事件的网关之后连接“接收任务 Receive Task”)。
  • 连接至基于事件的网关的intermediateCatchEvent,必须只有一个入口顺序流。

基于事件的网关,用内部带有特殊图标的网关(菱形)表示。

任务/活动

用户任务

“用户任务(user task)”用于对需要人工执行的任务进行建模。当流程执行到达用户任务时,会为指派至该任务的用户或组的任务列表创建一个新任务。

用户任务用左上角有一个小用户图标的标准任务(圆角矩形)表示。

服务任务

服务任务分为Java服务任务和Web服务任务。

Java服务任务(Java service task)用于调用Java类。

服务任务用左上角有一个小齿轮图标的圆角矩形表示。

Web服务任务(Web service task)用于同步地调用外部的Web服务。

Web服务任务与Java服务任务图标一样。

脚本任务

脚本任务(script task)是自动执行的活动。当流程执行到达脚本任务时,会执行相应的脚本。

脚本任务用左上角有一个小“脚本”图标的标准BPMN 2.0任务(圆角矩形)表示。

业务规则任务

业务规则任务(business rule task)用于同步地执行一条或多条规则。

业务规则任务显示为带有表格图标的圆角矩形。

接收任务

接收任务(receive task),是等待特定消息到达的简单任务。目前,我们只为这个任务实现了Java语义。当流程执行到达接收任务时,流程状态将提交至持久化存储。这意味着流程将保持等待状态,直到引擎接收到特定的消息,触发流程穿过接收任务继续执行。

接收任务用左上角有一个消息图标的标准BPMN 2.0任务(圆角矩形)表示。消息图标是白色的(对应的黑色消息图标代表发送的含义)。

与邮件任务有点像,接收任务里面的图标是白色的,邮件任务则是填充有颜色,使用时注意区分。

手动任务

手动任务(manual task)定义在BPM引擎之外的任务。它用于建模引擎不需要了解,也不需要提供系统或用户界面的工作。对于引擎来说,手动任务将按直接穿过活动处理,在流程执行到达手动任务时,自动继续执行流程。

手动任务用左上角有一个小“手”图标的标准BPMN 2.0任务(圆角矩形)表示。

邮件任务

Flowable让你可以通过自动的邮件服务任务(email task),增强业务流程。可以向一个或多个收信人发送邮件,支持cc,bcc,HTML文本,等等。请注意邮件任务不是BPMN 2.0规范的“官方”任务(所以也没有专用图标)。因此,在Flowable中,邮件任务实现为一种特殊的服务任务。

Http任务

Http任务(Http task)用于发出HTTP请求,增强了Flowable的集成能力。请注意Http任务不是BPMN 2.0规范的“官方”任务(所以也没有专用图标)。因此,在Flowable中,Http任务实现为一种特殊的服务任务。

Flowable使用可配置的Http客户端发出Http请求。如果不进行设置,会使用默认配置。

Mule任务

Mule任务可以向Mule发送消息,增强Flowable的集成特性。请注意Mule任务不是BPMN 2.0规范的“官方”任务(所以也没有专用图标)。因此,在Flowable中,Mule任务实现为一种特殊的服务任务。

Mule是什么?Mule,运行时平台和灵活的基于Java的企业服务(ESB),使开发人员可以轻松地在异构系统和服务之间建立高性能,安全,多协议的交互。 无论应用程序使用何种技术,它都可以轻松集成现有系统。 应用程序之间的数据交换由不同的消息传递格式进行。 Mule百度百科

决策任务

待查找资料

Send event task

Shell任务

Shell任务(Shell task)可以运行Shell脚本与命令。

Shell任务图标左上角是一个终端符号。

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://cloud.tencent.com/developer/article/2020525

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
盘点程序员写过的惊天Bug:亏损30亿、致6人死亡,甚至差点毁灭世界
马上就有码农站出来表示不服,并表示自己参与开发的一款发薪软件曾出现Bug,会导致发放的薪资变成双倍,总共能多发2000多万。
量子位
2021/09/29
5150
史上导致数百万美元损失的10大计算机漏洞
授权摘自FreeBuf.COM 编译|clouds 在IT时代,计算机漏洞或编程错误(Bug)是一种常见现象,以至于所有的开发软件都有可能存在缺陷或漏洞。你信或不信,反正漏洞就在那里,只是要么根本没人发现,或者有些人对它进行了测试并公开,而有些人对其测试但未公开(0-day漏洞)。任何软件在其生命周期内都会存在漏洞或缺陷,而那些未被发现的漏洞、缺陷、错误或0-day漏洞将会对软件本身和其应用系统产生严重的信息安全威胁,或造成巨大的经济损失,软件开发的安全性设计和测试工作应该得到更多重视。 在此,我们一起来看
大数据文摘
2018/05/25
2.1K1
代码历史上最昂贵的 7 个错误
算法或程序中的一个小技术错误就可能造成数百万美元的损失。本文带大家看看迄今为止历史上因程序错误而带来后果最为昂贵的 7 个错误。
陈哥聊测试
2022/05/05
5060
微软也栽了,“千年虫”啥时候是个头
新年伊始,微软 Exchange Server 2016 与 2019 中出现日期检查错误,导致服务器无法正确识别 2022 年这一时间标记。因此也有人称其为 Y2K22 bug,即千年虫 2022 版。
深度学习与Python
2023/04/01
4200
微软也栽了,“千年虫”啥时候是个头
开眼 | 盘点那些改变世界的代码
2009 年,Facebook 推出了一份改变世界的代码——点「赞」按钮。「赞」是包括 Leah Pearlman 和 Justin Rosenstein 在内的数名程序员和设计师的创意。他们认为 Facebook 用户经常太忙而无法在朋友的帖子上发表评论,但是如果有一个简单的按钮可以使用,那一定会大受欢迎。「朋友们可以更频繁、更轻松地相互点赞互动」,Pearlman 说。
昱良
2019/11/27
5310
开眼 | 盘点那些改变世界的代码
Y2K——百年一遇的BUG
大家不要小瞧这一篇文章,这个bug真的是百年才能一遇呢,所以还是耐心的看完本篇文章吧!
Tom2Code
2022/04/15
1.4K0
Y2K——百年一遇的BUG
防守式编程的艺术
原文地址:The Art of Defensive Programming 防守式编程的艺术 为什么开发人员不编写安全代码? 我们不再在这里讨论 “干净的代码” 。我们从一个纯粹的角度,软件的安全性来讨论更多的东西。是的,因为一个不安全的软件几乎是没用的。让我们来看看不安全的软件意味着什么。 欧洲航天局的 Ariane 5 Flight 501 在起飞后 40 秒(1996年6月4日)被毁。10 亿美元的原型火箭由于机载导航软件中的错误而自毁。 在 20 世纪 80 年代,一个治疗机中控制 Ther
程序员鹏磊
2018/02/09
6450
防守式编程的艺术
软件bug致命的经典案例: Therac-25医疗事故
Therac-25事件是在软件工程界被大量引用的案例。Therac-25是Atomic Energy of Canada Limited所生产的一种辐射治疗的机器。由于其软件设计时的瑕疵,致命地超过剂量设定导致在1985年6月到1987年1月之间,六件已知的医疗事故中,患者死亡或严重辐射灼伤。
Linux阅码场
2019/10/08
2.7K0
软件bug致命的经典案例: Therac-25医疗事故
系统 bug 致百人入狱,砸了 2.8 亿元仍上云失败!二十年了,这家大企业被日本软件坑惨了
新年伊始,根据软件 bug 导致数百人锒铛入狱、多人自杀真实事件改编的电视剧在英国播出后,公众对这起毁掉数百名英国邮政工人生活的丑闻的愤怒再次燃起。
深度学习与Python
2024/01/11
1560
系统 bug 致百人入狱,砸了 2.8 亿元仍上云失败!二十年了,这家大企业被日本软件坑惨了
软件危机:定义、起因、历史、机遇
软件危机(英语:Software Crisis)是早期计算机科学的一个术语,是指在软件开发及维护的过程中所遇到的一系列严重问题,这些问题皆可能导致软件产品的寿命缩短、甚至夭折。 软件开发是一项高难度、高风险的活动,由于它的高失败率,故有所谓“软件危机”之说。 软件危机的本源是复杂、期望和改变。这个术语用来描述正急遽增加之计算机的力量带来的冲击和可能要处理的问题的复杂性。从本质上来说,它谈到了写出正确、可理解、可验证的计算机程序的困难。
飞奔去旅行
2019/06/24
9.6K0
致命bug,7岁男童被夹断手指!
为了避免 Bug 导致的损失,上线前需要做好充分的测试,这也是公司时常教育我们的话:对上线持“敬畏之心”。
用户5021203
2022/10/05
3160
致命bug,7岁男童被夹断手指!
10亿英镑采购,一个系统BUG让数百名代理商含冤入狱
最近,英国独立电视台(ITV)的一部新剧(Mr Bates vs. The Post Office)引发了英国无数国民的愤慨,也揭开了英国邮局(Post Office)十几年来一直试图掩盖的丑闻。
FB客服
2024/01/15
3520
10亿英镑采购,一个系统BUG让数百名代理商含冤入狱
爱比较病毒测试(不是震网病毒特点的是)
现在的网络病毒能够分为三类,第一类是“蠕虫”病毒,这类型的病毒是在感染电脑后经过不停地复制自己,将电脑原来的运行和储存资源耗费掉,最终电脑由于资源耗费干净而无法运行直至死机;第二类是“进犯型”病毒,这类病毒和蠕虫病毒不一样,进犯型病毒一旦感染就会对电脑软件甚至是硬件做出破坏性的进犯,威力和破坏性极端强大。
全栈程序员站长
2022/07/29
1.5K0
爱比较病毒测试(不是震网病毒特点的是)
一个有趣的BUG
最近在协助团队完成ES数据的切换(业务数据迁移),过程中遇到一个比较好玩的BUG ,和大家分享并作为经验记录。
CKL的思考
2023/02/01
4070
听说拼多多因漏洞被薅了200亿?
看到一个大新闻:拼多多在20日凌晨出现漏洞,用户可以领100元无门槛优惠券。一夜之间,被黑产、羊毛党和闻讯而来的吃瓜群众薅了个底朝天,直到第二天上午9点才将优惠券下架。网上传言这一波损失超过200亿,但拼多多官方很快回应:漏洞确有此事,但损失没这么多,不到千万,已报警,正在追回。
Crossin先生
2019/03/06
1.1K0
2000多个Bug!这个系统让银行瘫痪、13亿人账户出错、最终损失超过28亿
2000多个bug,这样一个千疮百孔的系统,被用在了一家有13亿客户记录的银行里。
Java技术江湖
2020/02/17
5310
2000多个Bug!这个系统让银行瘫痪、13亿人账户出错、最终损失超过28亿
RISC-V CPU 为 NASA 的下一代航天计算机提供动力
芯片设计师 SiFive 周二表示,其兼容 RISC-V 的 CPU 内核将为 NASA 刚刚宣布的高性能航天计算机 (HPSC) 提供动力。
zhangrelay
2022/09/29
5100
RISC-V CPU 为 NASA 的下一代航天计算机提供动力
2022年,走出软件作坊!| Q推荐
上世纪 60 年代,IBM 开发 OS/360 操作系统,这是第一个超大型软件项目,非常复杂。当时,共有 1000 名左右的程序员参与了项目研发,花费了 5000 个人年,最终却无法运行。而项目负责人 Brooks 博士后来撰写了一本软件工程的经典书籍《人月神话》。
深度学习与Python
2022/03/23
4940
技术日志挑战——第10天:0802
今天在无锡上班,和老板接待了一个客户,订单应该是定下来了,后面就要进行软件的开发和交付了。
Arya
2024/08/02
1000
技术日志挑战——第10天:0802
1970成为iOS之殇,熊孩子又该如何自救
近日有网友爆出:如果把64位的iOS设备(iPhone、iPad、iPod touch)系统时间修改为1970年1月1日,设备重启后将变砖。
HelloWorld杰少
2022/08/03
5880
1970成为iOS之殇,熊孩子又该如何自救
相关推荐
盘点程序员写过的惊天Bug:亏损30亿、致6人死亡,甚至差点毁灭世界
更多 >
LV.1
这个人很懒,什么都没有留下~
目录
  • Flowable
    • Flowable是什么?
  • BPMN 2.0介绍
    • BPMN是什么
  • BPMN 2.0 结构
    • 事件
    • 启动事件
      • 空启动事件
      • 定时器启动事件
      • 信号启动事件
      • 消息启动事件
      • 异常启动事件
      • 升级启动事件
      • 条件启动事件
      • Start event registry event
    • 结束事件
      • 空结束事件
      • 结束错误事件
      • 结束升级事件
      • 结束取消事件
      • 结束终止事件
    • 中间捕捉事件
      • 中间计时器捕获事件
      • 中间信号捕获事件
      • 中间消息捕获事件
      • 中间条件捕获事件
    • 中间抛出事件
      • 空抛出中间事件/中间无抛出事件
      • 中间信号抛出事件
      • 中间升级抛出事件
      • 补偿抛出中间事件
    • 网关
      • 排他网关
      • 并行网关
      • 包容网关
      • 事件网关
    • 任务/活动
      • 用户任务
      • 服务任务
      • 脚本任务
      • 业务规则任务
      • 接收任务
      • 手动任务
      • 邮件任务
      • Http任务
      • Mule任务
      • 决策任务
      • Send event task
      • Shell任务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档