diff --git a/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/service/InstanceLogService.java b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/service/InstanceLogService.java index 86adbbc9..d97e0cd0 100644 --- a/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/service/InstanceLogService.java +++ b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/service/InstanceLogService.java @@ -97,7 +97,7 @@ public class InstanceLogService { /** * 获取任务实例运行日志(默认存在本地数据,需要由生成完成请求的路由与转发) * @param instanceId 任务实例ID - * @param index 页码 + * @param index 页码,从0开始 * @return 文本字符串 */ public StringPage fetchInstanceLog(Long instanceId, long index) { diff --git a/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/web/controller/InstanceController.java b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/web/controller/InstanceController.java index 2cbde1a8..a9dfb18e 100644 --- a/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/web/controller/InstanceController.java +++ b/oh-my-scheduler-server/src/main/java/com/github/kfcfans/oms/server/web/controller/InstanceController.java @@ -95,18 +95,16 @@ public class InstanceController { return ResultDTO.success(instanceLogService.fetchInstanceLog(instanceId, index)); } + @GetMapping("/downloadLogUrl") + public ResultDTO getDownloadUrl(Long instanceId) { + String targetServer = getTargetServer(instanceId); + String ip = targetServer.split(":")[0]; + String url = "http://" + ip + ":" + port + "/instance/downloadLog?instanceId=" + instanceId; + return ResultDTO.success(url); + } + @GetMapping("/downloadLog") public void downloadLogFile(Long instanceId , HttpServletResponse response) throws Exception { - String targetServer = getTargetServer(instanceId); - // 转发HTTP请求(如果使用Akka,则需要传输两次,而转发HTTP请求只需要传输一次"大"数据包) - if (!OhMyServer.getActorSystemAddress().equals(targetServer)) { - String ip = targetServer.split(":")[0]; - String url = "http://" + ip + ":" + port + "/instance/downloadLog?instanceId=" + instanceId; - try { - response.sendRedirect(url); - }catch (Exception ignore) { - } - } File file = instanceLogService.downloadInstanceLog(instanceId); response.setContentType("application/octet-stream");