首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jBPM中的真并行处理

jBPM中的真并行处理
EN

Stack Overflow用户
提问于 2010-01-11 21:04:56
回答 1查看 4.5K关注 0票数 0
代码语言:javascript
复制
need to achieve:

对多个任务进行分叉处理

.

jBPM解决方案应该并行执行任务,而不是按默认顺序执行任务。

我读过jBPM文档,这些文档建议在节点/任务上使用async="true",但是对于如何实现这一点还不清楚。其中一个建议是将其持久化到DB中,并将任务发送到JMS队列,而不是处理自定义多线程管理。然而,我发现jBPM没有一个简单的解决方案,这太奇怪了。

我希望有人能在这里证明我是错的,并向我展示使用jBPM 3.2.6的简单而优雅的解决方案,因为这是Red支持的最新解决方案

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-17 15:41:55

正如您可能已经注意到的,jBPM对流程实例数据没有并发控制。例如,进程变量在访问时不能被锁定,引擎也不能隐式锁定它们。由于这种情况,真正的并行处决将导致种族状况。

当涉及到BPM引擎时,这是一个常见的设计折衷。避免所有并发控制陷阱(死锁、竞争条件、饥饿、一致性问题.)对每个流程实例执行一个线程。业务流程应该是长时间运行的,但也应该在大多数情况下等待某些事件发生,而不应该自己计算密集。因此,在执行单个进程实例时,CPU不应成为瓶颈。

正如您所描述的,您可以通过将并行工作负载从流程中分离出来来解决这个限制。您还可以通过创建java活动并手动生成线程,将其保存在进程中,尽管这是非常不鼓励的。首先,您将阻止正在执行实例的jBPM线程,并且无法监视并行工作负载的进度。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2044926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档