in core/src/main/java/com/alibaba/smart/framework/engine/util/ParallelGatewayUtil.java [145:171]
private static Future<ExecutionContext> invokeAnyOf(ExecutorService pool, List<PvmActivityTask> tasks, long timeout,
boolean ignoreTimeout) throws Exception {
ExecutionContext pvmActivity = null;
Exception ex = null;
// 不处理超时的情况
if (timeout <= 0) {
pvmActivity = pool.invokeAny(tasks);
} else {
// 处理timeout的方式
try {
pvmActivity = pool.invokeAny( tasks, timeout, TimeUnit.MILLISECONDS);
} catch (InterruptedException e) {
throw e;
} catch (ExecutionException e) {
throw e;
} catch (TimeoutException e) {
if (!ignoreTimeout) {
throw e;
}
ex = e;
}
}
return new CompletedFuture<ExecutionContext>(pvmActivity, ex);
}