Browse Source

feat: 支持查状态

许家凯 3 năm trước cách đây
mục cha
commit
db701fc740

+ 6 - 0
src/main/java/com/winhc/bigdata/task/controller/PullDataController.java

@@ -35,4 +35,10 @@ public class PullDataController {
         Assert.isTrue(SystemParams.sign.equals(sign), "验签不通过!");
         return pullRequestRecordService.pull(sqlId, toMongoDbName, pullBy);
     }
+
+
+    @GetMapping("status")
+    public Object status(String pullId) {
+        return pullRequestRecordService.status(pullId);
+    }
 }

+ 3 - 1
src/main/java/com/winhc/bigdata/task/framework/odps/service/PullRequestRecordService.java

@@ -16,6 +16,8 @@ public interface PullRequestRecordService extends IService<PullRequestRecord> {
      * @param pullBy
      * @return
      */
-    Object pull(String sqlId,String toMongoDbName, String pullBy);
+    Object pull(String sqlId, String toMongoDbName, String pullBy);
+
+    Object status(String pullId);
 
 }

+ 25 - 3
src/main/java/com/winhc/bigdata/task/framework/odps/service/impl/PullRequestRecordServiceImpl.java

@@ -1,17 +1,22 @@
 package com.winhc.bigdata.task.framework.odps.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.winhc.bigdata.task.enums.DataWorksTaskFlowEnum;
 import com.winhc.bigdata.task.enums.TaskStatusEnum;
 import com.winhc.bigdata.task.framework.odps.entity.PullRequestRecord;
 import com.winhc.bigdata.task.framework.odps.mapper.PullRequestRecordMapper;
 import com.winhc.bigdata.task.framework.odps.service.OdpsSqlInfoService;
 import com.winhc.bigdata.task.framework.odps.service.PullRequestRecordService;
+import com.winhc.bigdata.task.service.DataWorksService;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -22,9 +27,8 @@ import java.util.stream.Collectors;
 @Service
 @AllArgsConstructor
 public class PullRequestRecordServiceImpl extends ServiceImpl<PullRequestRecordMapper, PullRequestRecord> implements PullRequestRecordService {
-
     private final OdpsSqlInfoService odpsSqlInfoService;
-
+    private final DataWorksService dataWorksService;
 
     @Override
     public synchronized Object pull(String sqlId, String toMongoDbName, String pullBy) {
@@ -43,6 +47,24 @@ public class PullRequestRecordServiceImpl extends ServiceImpl<PullRequestRecordM
                 .partitionTaskStatus(TaskStatusEnum.等待中)
                 .build();
         save(build);
-        return true;
+        return build.getId();
+    }
+
+    private static final Map<String, DataWorksTaskFlowEnum> map = new HashMap<String, DataWorksTaskFlowEnum>() {
+        {
+            put("to_mongo", DataWorksTaskFlowEnum.NOT_RUN);
+        }
+    };
+
+    @Override
+    public Object status(String pullId) {
+        PullRequestRecord byId = getById(pullId);
+        Assert.notNull(byId, "拉取任务的id不存在!");
+        String pullInstanceId = byId.getPullInstanceId();
+        if (StringUtils.isEmpty(pullInstanceId)) {
+            return map;
+        }
+        return dataWorksService.query("winhc_ng", Long.parseLong(pullInstanceId));
+
     }
 }