jBPM5中的GateWay如果选择AND则表示平行执行多个Task,ParallelExecute示例演示jBPM5中如何平行执行多个Task,ParallelExecute流程如下:
上图为平行执行多个Task的流程,其中Task1.1,Task1.2,Task1.3平行执行,Task2.1,Task2.2平行执行,Task1.1,Task1.2,Task1.3后面Gateway类型选择AND,则表示当这三个任务都完成时流程继续执行。图中的所有节点都为Script Task,运行时都执行相同的Java代码如下:
System.out.println(kcontext.getNodeInstance().getNodeName() );
如上代码输出当前节点的名字。
- ParallelExecute流程运行代码:https://github.com/kylinsoong/.../ParallelExecuteStart.java
- ParallelExecute流程:https://github.com/kylinsoong/.../parallelExecuteProcess.bpmn
运行org.jbpm.quickstarts.parallel.ParallelExecuteStart可执行ParallelExecute流程,ParallelExecuteStart代码如下所示:
package org.jbpm.quickstarts.parallel;
import org.drools.runtime.StatefulKnowledgeSession;
import org.jbpm.quickstarts.QuickStartBase;
public class ParallelExecuteStart extends QuickStartBase{
public void test() {
StatefulKnowledgeSession ksession = createKnowledgeSession("quickstarts/parallelExecuteProcess.bpmn");
ksession.startProcess("org.jbpm.quickstarts.parallelExecuteProcess");
}
public static void main(String[] args) {
new ParallelExecuteStart().test();
}
}
ParallelExecute流程运行输出的结果如下:
Execute 3 tasks in parallel
Task 1.2
Task 1.1
Task 1.3
Execute 2 Tasks
Task 2.1
Task 2.2