소스 검색

fix: the bug of tasks occasionally cannot be stopped #180

tjq 4 년 전
부모
커밋
cdaea08ba7
1개의 변경된 파일6개의 추가작업 그리고 0개의 파일을 삭제
  1. 6 0
      powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/service/instance/InstanceManager.java

+ 6 - 0
powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/service/instance/InstanceManager.java

@@ -73,6 +73,12 @@ public class InstanceManager {
             return;
         }
 
+        // 如果任务已经结束,直接丢弃该请求(StopInstance 和 ReportStatus 同时发送的情况)
+        if (InstanceStatus.finishedStatus.contains(instanceInfo.getStatus())) {
+            log.info("[InstanceManager-{}] instance already finished, this report[{}] will be dropped!", instanceId, req);
+            return;
+        }
+
         InstanceStatus newStatus = InstanceStatus.of(req.getInstanceStatus());
         Integer timeExpressionType = jobInfo.getTimeExpressionType();