Переглянути джерело

feat: 指定job结束后发送状态通知

许家凯 4 роки тому
батько
коміт
840f9a0de3

+ 6 - 0
src/main/java/com/winhc/dataworks/flow/touch/Main.java

@@ -11,6 +11,7 @@ import com.winhc.dataworks.flow.touch.bean.*;
 import com.winhc.dataworks.flow.touch.configuration.DataWorksAccessProperties;
 import com.winhc.dataworks.flow.touch.configuration.SchemaInit;
 import com.winhc.dataworks.flow.touch.service.OdpsService;
+import com.winhc.dataworks.flow.touch.service.SendJobStatus;
 import com.winhc.dataworks.flow.touch.service.TouchService;
 import com.winhc.dataworks.flow.touch.utils.DateUtils;
 import com.winhc.dataworks.flow.touch.utils.DingUtils;
@@ -141,6 +142,11 @@ public class Main {
                     String odpsCmdPath = commandLine.getOptionValue("odps");
                     dd.send(msg);
                     bean.start(bizDate, jobs, odpsCmdPath);
+                    // 指定job结束后发送通知
+                    if (fileName.endsWith("step03.yaml")) {
+                        SendJobStatus sendJobStatus = context.getBean(SendJobStatus.class);
+                        sendJobStatus.sendJobStatus();
+                    }
                 }
             }
         } catch (ParseException e) {

+ 33 - 0
src/main/java/com/winhc/dataworks/flow/touch/service/SendJobStatus.java

@@ -0,0 +1,33 @@
+package com.winhc.dataworks.flow.touch.service;
+
+import com.helospark.lightdi.annotation.Autowired;
+import com.helospark.lightdi.annotation.Service;
+import com.winhc.dataworks.flow.touch.utils.DateUtils;
+import com.winhc.dataworks.flow.touch.utils.OkHttpUtils;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @Author: XuJiakai
+ * @Date: 2020/8/27 19:09
+ * @Description:
+ */
+@Slf4j
+@Service
+public class SendJobStatus {
+
+    @Autowired
+    OkHttpUtils okHttpUtils;
+
+    public Boolean sendJobStatus() {
+        try {
+            String url = String.format("http://47.101.221.131:8085/job-status/set?job_status=END&job_type_id=company_dynamic&date=%s", DateUtils.getMinusDay(0));
+            String res = okHttpUtils.get(url);
+            log.info("send job status: {}", res);
+            return "ok".equals(res);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            return false;
+        }
+
+    }
+}