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 d722e4d8a30412bc3c1e9381e64ffc7958645bac..8f52d516b45a0ecab989ab7c3bf9a236d3e5c3f5 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 (getState() != INIT) { + return ; + } boolean nowDependIsMust = false; //创建必须完成的上游wrapper集合 Set mustWrapper = new HashSet<>();