fix: instanceInfo cannot display details on non-scheduled server nodes

This commit is contained in:
tjq 2024-02-08 13:14:59 +08:00
parent f3dd56bf54
commit debc2e0abb
3 changed files with 21 additions and 9 deletions

View File

@ -260,10 +260,12 @@ public class InstanceService {
/**
* 获取任务实例的详细运行详细
*
* @param appId 用于远程 server 路由勿删
* @param instanceId 任务实例ID
* @return 详细运行状态
*/
public InstanceDetail getInstanceDetail(Long instanceId) {
@DesignateServer
public InstanceDetail getInstanceDetail(Long appId, Long instanceId) {
InstanceInfoDO instanceInfoDO = fetchInstanceInfo(instanceId);

View File

@ -6,7 +6,6 @@ import tech.powerjob.server.common.utils.OmsFileUtils;
import tech.powerjob.server.persistence.PageResult;
import tech.powerjob.server.persistence.StringPage;
import tech.powerjob.server.persistence.remote.model.InstanceInfoDO;
import tech.powerjob.server.persistence.remote.repository.AppInfoRepository;
import tech.powerjob.server.persistence.remote.repository.InstanceInfoRepository;
import tech.powerjob.server.core.service.CacheService;
import tech.powerjob.server.core.instance.InstanceLogService;
@ -69,8 +68,14 @@ public class InstanceController {
}
@GetMapping("/detail")
public ResultDTO<InstanceDetailVO> getInstanceDetail(Long instanceId) {
return ResultDTO.success(InstanceDetailVO.from(instanceService.getInstanceDetail(instanceId)));
public ResultDTO<InstanceDetailVO> getInstanceDetail(Long appId, Long instanceId) {
// 兼容老版本前端不存在 appId 的场景
if (appId == null) {
appId = instanceService.getInstanceInfo(instanceId).getAppId();
}
return ResultDTO.success(InstanceDetailVO.from(instanceService.getInstanceDetail(appId, instanceId)));
}
@GetMapping("/log")

View File

@ -2,6 +2,7 @@ package tech.powerjob.samples.processors;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.*;
import tech.powerjob.common.serialize.JsonUtils;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
@ -9,10 +10,6 @@ import tech.powerjob.worker.core.processor.TaskResult;
import tech.powerjob.worker.core.processor.sdk.MapReduceProcessor;
import tech.powerjob.worker.log.OmsLogger;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@ -85,10 +82,18 @@ public class MapReduceProcessorDemo implements MapReduceProcessor {
}
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public static class TestSubTask {
/**
* 注意代表子任务参数的类一定要有无参构造方法一定要有无参构造方法一定要有无参构造方法
* 最好把 GET / SET 方法也加上减少序列化问题的概率
*/
public TestSubTask() {
}
private String name;
private int age;
}