在 BPMN 中何时使用事件何时使用任务?

如何解决在 BPMN 中何时使用事件何时使用任务?

在下图中,为什么 task 1task 2 之间有一个事件?如果等待是流程执行中的“活动任务”(例如等待,意味着静坐不动,什么也不做),我可以用任务替换事件吗?还是应该同时使用任务和事件?

enter image description here

图片来源:https://blog.goodelearning.com/subject-areas/bpmn/common-bpmn-modeling-mistakes-best-practices-basic-events/

这个例子可能会更清楚一点,我到底应该在什么时候使用 1,什么时候应该使用 2 以及它们什么时候都有效?

enter image description here

解决方法

希望我的回答对你有所帮助。让我从选项 2 开始,忙于等待:

您可能知道在编程中,异步(基于触发器)等待优于忙等待,因为它在您的 CPU 中消耗更少的周期,因此代码将更多地并行运行并且通常更快。也就是说,因为操作系统通常知道如何正确地“等待某个时间或直到某个事件”。

同样,在 BPM 中,您不会支付一半的时间让您的员工坐在某处积极等待某事完成。作为一个真实的例子,让我们以餐厅的服务员为例。假设他们必须加热昨天准备好的饭菜,功率正好为 600 瓦,加热时间为 2 分 21 秒。让服务员坐在微波炉前,让他们拿着秒表等待时间过去时停止微波炉是没有意义的。相反,他们可以在餐厅为顾客服务,一听到微波炉的声音信号就回来。 (多任务处理)。此外,如果时间发生变化 - 假设更大的部分,即 3 分钟 - 那么服务员的工作流程不会改变:他们仍然等待铃声响起,还有 39 秒给服务员顾客。由于忙于等待,您将不得不更改工作流程(告诉服务员在他们的秒表上检查不同的时间跨度)。

与所有这些相比,让我们采用第一种方法:它在计算上更合理,而且从业务角度来看也更有意义。触发器本身可以改变(例如,从定时触发器到你老板的电子邮件触发器),但触发的事件 - 从而继续下一步 - 保持不变。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?