Browse Source

!19 优化有多个依赖的情况:如果当前任务已经完成了,依赖的其他任务拿到锁再进来时,不需要执行下面的逻辑了。
Merge pull request !19 from KyleTao/master

tianyaleixiaowu 1 year ago
parent
commit
e3988519ef
1 changed files with 4 additions and 0 deletions
  1. 4 0
      src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java

+ 4 - 0
src/main/java/com/jd/platform/async/wrapper/WorkerWrapper.java

@@ -216,6 +216,10 @@ public class WorkerWrapper<T, V> {
     }
 
     private synchronized void doDependsJobs(ExecutorService executorService, List<DependWrapper> dependWrappers, WorkerWrapper fromWrapper, long now, long remainTime) {
+        //如果当前任务已经完成了,依赖的其他任务拿到锁再进来时,不需要执行下面的逻辑了。
+        if (getState() != INIT) {
+            return ;
+        }
         boolean nowDependIsMust = false;
         //创建必须完成的上游wrapper集合
         Set<DependWrapper> mustWrapper = new HashSet<>();