need to achieve:对多个任务进行分叉处理
.
jBPM解决方案应该并行执行任务,而不是按默认顺序执行任务。
我读过jBPM文档,这些文档建议在节点/任务上使用async="true",但是对于如何实现这一点还不清楚。其中一个建议是将其持久化到DB中,并将任务发送到JMS队列,而不是处理自定义多线程管理。然而,我发现jBPM没有一个简单的解决方案,这太奇怪了。
我希望有人能在这里证明我是错的,并向我展示使用jBPM 3.2.6的简单而优雅的解决方案,因为这是Red支持的最新解决方案
谢谢。
发布于 2010-11-17 15:41:55
正如您可能已经注意到的,jBPM对流程实例数据没有并发控制。例如,进程变量在访问时不能被锁定,引擎也不能隐式锁定它们。由于这种情况,真正的并行处决将导致种族状况。
当涉及到BPM引擎时,这是一个常见的设计折衷。避免所有并发控制陷阱(死锁、竞争条件、饥饿、一致性问题.)对每个流程实例执行一个线程。业务流程应该是长时间运行的,但也应该在大多数情况下等待某些事件发生,而不应该自己计算密集。因此,在执行单个进程实例时,CPU不应成为瓶颈。
正如您所描述的,您可以通过将并行工作负载从流程中分离出来来解决这个限制。您还可以通过创建java活动并手动生成线程,将其保存在进程中,尽管这是非常不鼓励的。首先,您将阻止正在执行实例的jBPM线程,并且无法监视并行工作负载的进度。
https://stackoverflow.com/questions/2044926
复制相似问题