From 4b2585984c3797084000a9f3f84dde41aad70194 Mon Sep 17 00:00:00 2001 From: lanyuanxiaoyao Date: Mon, 29 Jan 2024 15:47:25 +0800 Subject: [PATCH] =?UTF-8?q?feat(web):=20=E5=A2=9E=E5=8A=A0=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E5=81=9C=E6=AD=A2=E5=85=A8=E9=83=A8=E5=8E=8B=E7=BC=A9?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=9A=84=E5=B0=8F=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../forest/service/ScheduleService.java | 3 ++ .../web/controller/ScheduleController.java | 11 ++++++ .../web/controller/TaskController.java | 12 +++++++ .../resources/static/components/tool-tab.js | 36 +++++++++++++++++++ 4 files changed, 62 insertions(+) diff --git a/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/ScheduleService.java b/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/ScheduleService.java index bed9ae5..d379050 100644 --- a/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/ScheduleService.java +++ b/service-forest/src/main/java/com/lanyuanxiaoyao/service/forest/service/ScheduleService.java @@ -35,4 +35,7 @@ public interface ScheduleService { @Get("/table") void scheduleTableRecommend(@Query("flink_job_id") Long flinkJobId, @Query("alias") String alias, @Query("recommend") String recommendCluster); + + @Get("/stop_all") + void stopAll(@Query("flink_job_id") Long flinkJobId, @Query("alias") String alias, @Query("disable_meta") Boolean disableMeta); } diff --git a/service-web/src/main/java/com/lanyuanxiaoyao/service/web/controller/ScheduleController.java b/service-web/src/main/java/com/lanyuanxiaoyao/service/web/controller/ScheduleController.java index aef261d..1303c60 100644 --- a/service-web/src/main/java/com/lanyuanxiaoyao/service/web/controller/ScheduleController.java +++ b/service-web/src/main/java/com/lanyuanxiaoyao/service/web/controller/ScheduleController.java @@ -68,4 +68,15 @@ public class ScheduleController extends BaseController { } return AmisResponse.responseSuccess(); } + + @GetMapping("stop_all") + public AmisResponse stopAll( + @RequestParam("flink_job_id") Long flinkJobId, + @RequestParam("alias") String alias, + @RequestParam(value = "disable_meta", required = false) Boolean disableMeta + ) throws TableNotFoundException { + checkTableExists(infoService, flinkJobId, alias); + scheduleService.stopAll(flinkJobId, alias, disableMeta); + return AmisResponse.responseSuccess(); + } } diff --git a/service-web/src/main/java/com/lanyuanxiaoyao/service/web/controller/TaskController.java b/service-web/src/main/java/com/lanyuanxiaoyao/service/web/controller/TaskController.java index cff4134..e6296d2 100644 --- a/service-web/src/main/java/com/lanyuanxiaoyao/service/web/controller/TaskController.java +++ b/service-web/src/main/java/com/lanyuanxiaoyao/service/web/controller/TaskController.java @@ -66,6 +66,18 @@ public class TaskController { return AmisResponse.responseSuccess(); } + @GetMapping("latest_op_ts") + public AmisResponse latestOpTs(@RequestParam("hdfs") String hdfs) { + if (StrUtil.isBlank(hdfs)) { + throw new RuntimeException("Hdfs cannot be blank"); + } + ExecutorProvider.EXECUTORS.submit(() -> { + String applicationId = taskService.latestOpTs(hdfs); + logger.info("Task: {}", applicationId); + }); + return AmisResponse.responseSuccess(); + } + @GetMapping("results") public AmisMapResponse results(@RequestParam("task_id") String taskId) { return AmisResponse.responseMapData() diff --git a/service-web/src/main/resources/static/components/tool-tab.js b/service-web/src/main/resources/static/components/tool-tab.js index 6bccb1c..7cdd86a 100644 --- a/service-web/src/main/resources/static/components/tool-tab.js +++ b/service-web/src/main/resources/static/components/tool-tab.js @@ -215,6 +215,42 @@ function toolTab() { } ] }, + { + type: 'form', + title: '停止所有压缩任务', + api: { + method: 'get', + url: '${base}/schedule/stop_all', + data: { + flink_job_id: '${flinkJobId|default:undefined}', + alias: '${alias|default:undefined}', + disable_meta: "${disableMeta|default:undefined}", + } + }, + ...formReloadFlinkJobIdTextInputAndAliasTextInput("163e043e-8cee-41fd-b5a4-0442ac682aec"), + body: [ + { + type: 'group', + body: [ + { + ...flinkJobIdTextInput("163e043e-8cee-41fd-b5a4-0442ac682aec", true), + columnRatio: 5 + }, + { + ...aliasTextInput("163e043e-8cee-41fd-b5a4-0442ac682aec", true), + columnRatio: 5 + }, + { + name: 'disableMeta', + type: 'checkbox', + label: '是否禁用表', + option: '表status设为n', + columnRatio: 2 + } + ] + }, + ] + }, ] } } \ No newline at end of file