Browse Source

获取应用当前状态功能

reghao 4 years ago
parent
commit
f9c5cfaa84

+ 9 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/controller/AppStatusController.java

@@ -50,4 +50,13 @@ public class AppStatusController {
         statusService.changeStatus(appId, machineId, StatusOps.start);
         return WebBody.result(Result.result(ResultStatus.SUCCESS, appId + " 正在启动,请 10s 后刷新页面查看最新状态"));
     }
+
+    @ApiOperation(value = "应用当前状态")
+    @GetMapping(value = "/{appId}/{machineId}", produces = MediaType.APPLICATION_JSON_VALUE)
+    public String status(@PathVariable("appId") String appId, @PathVariable("machineId") String machineId)
+            throws MqttException {
+        statusService.getStatus(appId, machineId);
+        String msg = String.format("正在获取 %s 的状态,请 10s 后刷新页面查看", appId);
+        return WebBody.result(Result.result(ResultStatus.SUCCESS, msg));
+    }
 }

+ 1 - 1
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/vo/AppRunningVo.java

@@ -37,6 +37,6 @@ public class AppRunningVo {
         this.status = appRunning.getStatus();
         this.startTime = appRunning.getStartTime() != null ? DateTimeConverter.format(appRunning.getStartTime()) : "N/A";
         this.pid = appRunning.getPid() != null ? appRunning.getPid() : -1;
-        this.lastCheck = appRunning.getLastCheck() != null ? DateTimeConverter.format(appRunning.getLastCheck()) : "N/A";
+        this.lastCheck = "N/A";
     }
 }

+ 10 - 10
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/impl/AppStatusServiceImpl.java

@@ -59,6 +59,16 @@ public class AppStatusServiceImpl implements AppStatusService {
         remoteCall(machineId, rpcMsg);
     }
 
+    @Override
+    public void getStatus(String appId, String machineId) {
+        AppConfig appConfig = appConfigQuery.findByAppId(appId);
+        String packType = appConfig.getPackerConfig().getType();
+        StatusParam statusParam = new StatusParam(packType, appId);
+        RpcMsg rpcMsg = RpcMsg.paramMsg(AppRpcClazz.class.getSimpleName(), AppRpcClazz.status.name(),
+                JsonConverter.objectToJson(statusParam));
+        remoteCall(machineId, rpcMsg);
+    }
+
     private void remoteCall(String machineId, RpcMsg rpcMsg) {
         Message message = Message.rpcParamMsg(rpcMsg);
         // TODO 对于需要返回值的 pub,需要做一个记录,pub 和 sub 一一对应
@@ -69,14 +79,4 @@ public class AppStatusServiceImpl implements AppStatusService {
             e.printStackTrace();
         }
     }
-
-    @Override
-    public void getStatus(String appId, String machineId) {
-        AppConfig appConfig = appConfigQuery.findByAppId(appId);
-        String packType = appConfig.getPackerConfig().getType();
-        StatusParam statusParam = new StatusParam(packType, appId);
-        RpcMsg rpcMsg = RpcMsg.paramMsg(AppRpcClazz.class.getSimpleName(), AppRpcClazz.status.name(),
-                JsonConverter.objectToJson(statusParam));
-        remoteCall(machineId, rpcMsg);
-    }
 }

+ 1 - 7
dmaster/src/main/resources/templates/app/stat/index.html

@@ -44,8 +44,6 @@
                     </th>
                     <th class="sortable" data-field="appName">应用</th>
                     <th class="sortable" data-field="machineIpv4">机器地址</th>
-                    <!--<th class="sortable" data-field="httpPort">HTTP 端口</th>
-                    <th class="sortable" data-field="healthCheck">健康检查地址</th>-->
                     <th class="sortable" data-field="packagePath">包路径</th>
                     <th class="sortable" data-field="status">运行状态</th>
                     <th class="sortable" data-field="startTime">启动时间</th>
@@ -63,8 +61,6 @@
                            th:text="${item.appName}" th:attr="data-url=@{'/app/config/app/detail/'+${item.appId}}"></a>
                     </td>
                     <td th:text="${item.machineIpv4}">机器地址</td>
-                    <!--<td th:text="${item.httpPort}">HTTP 端口</td>
-                    <td th:text="${item.healthCheck}">健康检查地址</td>-->
                     <td th:text="${item.packagePath}">包路径</td>
                     <td class="app-status" th:text="${item.status}">运行状态</td>
                     <td th:text="${item.startTime}">启动时间</td>
@@ -74,9 +70,7 @@
                         <a class="ajax-post" th:href="@{'/api/app/status/restart/'+${item.appId}+'/'+${item.machineId}}">重启</a>
                         <a class="ajax-post" th:href="@{'/api/app/status/stop/'+${item.appId}+'/'+${item.machineId}}">停止</a>
                         <a class="ajax-post" th:href="@{'/api/app/status/start/'+${item.appId}+'/'+${item.machineId}}">启动</a>
-                        <a class="open-popup" data-title="应用日志"
-                           th:attr="data-url=@{'/app/status/applog/'+${item.appId}+'/'+${item.machineId}}"
-                           data-size="1000,500" href="#">日志</a>
+                        <a class="ajax-get" th:href="@{'/api/app/status/'+${item.appId}+'/'+${item.machineId}}">当前状态</a>
                     </td>
                 </tr>
                 </tbody>