From c404be0b65e0c4c86c98ff1e427a99ea85252f22 Mon Sep 17 00:00:00 2001 From: rongtao7 <337845946@qq.com> Date: Sun, 12 Jun 2022 19:39:38 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9C=89=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=E4=BE=9D=E8=B5=96=E7=9A=84=E6=83=85=E5=86=B5=EF=BC=9A?= =?UTF-8?q?=E5=A6=82=E6=9E=9C=E5=BD=93=E5=89=8D=E4=BB=BB=E5=8A=A1=E5=B7=B2?= =?UTF-8?q?=E7=BB=8F=E5=AE=8C=E6=88=90=E4=BA=86=EF=BC=8C=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E7=9A=84=E5=85=B6=E4=BB=96=E4=BB=BB=E5=8A=A1=E6=8B=BF=E5=88=B0?= =?UTF-8?q?=E9=94=81=E5=86=8D=E8=BF=9B=E6=9D=A5=E6=97=B6=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E6=89=A7=E8=A1=8C=E4=B8=8B=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BA=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/jd/platform/async/wrapper/WorkerWrapper.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java b/src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java index d722e4d..2918b82 100755 --- a/src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java +++ b/src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java @@ -216,6 +216,10 @@ public class WorkerWrapper { } private synchronized void doDependsJobs(ExecutorService executorService, List dependWrappers, WorkerWrapper fromWrapper, long now, long remainTime) { + //如果当前任务已经完成了,依赖的其他任务拿到锁再进来时,不需要执行下面的逻辑了。 + if (!checkIsNullResult()) { + return ; + } boolean nowDependIsMust = false; //创建必须完成的上游wrapper集合 Set mustWrapper = new HashSet<>(); -- Gitee From 508724c159f29959ad86e0545b6a440c73740d1c Mon Sep 17 00:00:00 2001 From: rongtao7 <337845946@qq.com> Date: Sun, 12 Jun 2022 20:56:31 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9C=89=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=E4=BE=9D=E8=B5=96=E7=9A=84=E6=83=85=E5=86=B5=EF=BC=9A?= =?UTF-8?q?=E5=A6=82=E6=9E=9C=E5=BD=93=E5=89=8D=E4=BB=BB=E5=8A=A1=E5=B7=B2?= =?UTF-8?q?=E7=BB=8F=E5=AE=8C=E6=88=90=E4=BA=86=EF=BC=8C=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E7=9A=84=E5=85=B6=E4=BB=96=E4=BB=BB=E5=8A=A1=E6=8B=BF=E5=88=B0?= =?UTF-8?q?=E9=94=81=E5=86=8D=E8=BF=9B=E6=9D=A5=E6=97=B6=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E6=89=A7=E8=A1=8C=E4=B8=8B=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BA=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java b/src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java index 2918b82..8f52d51 100755 --- a/src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java +++ b/src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java @@ -217,7 +217,7 @@ public class WorkerWrapper { private synchronized void doDependsJobs(ExecutorService executorService, List dependWrappers, WorkerWrapper fromWrapper, long now, long remainTime) { //如果当前任务已经完成了,依赖的其他任务拿到锁再进来时,不需要执行下面的逻辑了。 - if (!checkIsNullResult()) { + if (getState() != INIT) { return ; } boolean nowDependIsMust = false; -- Gitee