这可以使用流框架中的活动返回的 Promise 对象来解决。
在您的决策程序代码中,为 stage1 提供一个函数,该函数将并行执行多个活动,每个活动都返回一个 Promise 对象。将所有这些 Promise 对象添加到 a 中List<Promise<>>
,并将此 List 传递给处理阶段 2 的异步方法。
这是一个示例决策程序代码。stage1()
并行执行三个活动并调用异步方法stage2(@Wait List<Promise<Void>> promiseList)
。除非promiseList 中的所有promise 都满足,否则stage2 不会启动,即除非stage1 中的所有三个活动都已完成。
private void stage1() {
List<Promise<Void>> promiseList = new ArrayList<Promise<Void>>();
Promise<Void> promise1 = activityClient.activity1();
Promise<Void> promise2 = activityClient.activity2();
Promise<Void> promise3 = activityClient.activity3();
promiseList.add(promise1);
promiseList.add(promise2);
promiseList.add(promise3);
stage2(promiseList);
}
@Asynchronous
private void stage2(@Wait List<Promise<Void>> promiseList) {
activityClient.activity4();
}