From b57284e350d204611a5b3fb605392815ce2520c3 Mon Sep 17 00:00:00 2001 From: bryan31 Date: Wed, 10 Nov 2021 00:42:09 +0800 Subject: [PATCH] =?UTF-8?q?enhancement=20#I4HKZG=20=E5=80=9F=E9=89=B4async?= =?UTF-8?q?Tool=E5=AF=B9=E5=BC=82=E6=AD=A5=E7=BA=BF=E7=A8=8B=E5=BA=95?= =?UTF-8?q?=E5=B1=82=E8=BF=9B=E8=A1=8C=E4=BA=86=E5=BD=BB=E5=BA=95=E9=87=8D?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yomahub/liteflow/entity/flow/Chain.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/flow/Chain.java b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/flow/Chain.java index 3f367f471..1ecd183f8 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/entity/flow/Chain.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/entity/flow/Chain.java @@ -26,6 +26,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.*; import java.util.concurrent.*; +import java.util.function.Predicate; import java.util.stream.Collectors; /** @@ -146,7 +147,15 @@ public class Chain implements Executable { //如果any为false,那么所有任务都已经完成 //如果any为true,那么这里拿到的是第一个完成的任务 //这里过滤和转换一起用lumbda做了 - List allCompletableWhenFutureObjList = completableFutureList.stream().filter(CompletableFuture::isDone).map(f -> { + List allCompletableWhenFutureObjList = completableFutureList.stream().filter(f -> { + //过滤出已经完成的,没完成的就直接终止 + if (f.isDone()){ + return true; + }else{ + f.cancel(true); + return false; + } + }).map(f -> { try { return f.get(); } catch (InterruptedException | ExecutionException e) {