feat: 2.6.0
1. 优化回调日志
This commit is contained in:
parent
c8a238b91c
commit
fe9048ce8a
@ -57,7 +57,7 @@ public abstract class AbstractWorkflowExecutor implements WorkflowExecutor, Init
|
|||||||
@Autowired
|
@Autowired
|
||||||
private JobTaskBatchGenerator jobTaskBatchGenerator;
|
private JobTaskBatchGenerator jobTaskBatchGenerator;
|
||||||
@Autowired
|
@Autowired
|
||||||
private WorkflowBatchHandler workflowBatchHandler;
|
protected WorkflowBatchHandler workflowBatchHandler;
|
||||||
@Autowired
|
@Autowired
|
||||||
private JobTaskMapper jobTaskMapper;
|
private JobTaskMapper jobTaskMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -107,12 +107,7 @@ public abstract class AbstractWorkflowExecutor implements WorkflowExecutor, Init
|
|||||||
generatorContext.setJobId(context.getJobId());
|
generatorContext.setJobId(context.getJobId());
|
||||||
generatorContext.setTaskExecutorScene(context.getTaskExecutorScene());
|
generatorContext.setTaskExecutorScene(context.getTaskExecutorScene());
|
||||||
jobTaskBatchGenerator.generateJobTaskBatch(generatorContext);
|
jobTaskBatchGenerator.generateJobTaskBatch(generatorContext);
|
||||||
try {
|
|
||||||
workflowBatchHandler.complete(context.getWorkflowTaskBatchId());
|
workflowBatchHandler.complete(context.getWorkflowTaskBatchId());
|
||||||
} catch (IOException e) {
|
|
||||||
throw new EasyRetryServerException("工作流完成处理异常", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,8 +14,10 @@ import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
|
|||||||
import com.aizuda.easy.retry.server.common.client.RequestInterceptor;
|
import com.aizuda.easy.retry.server.common.client.RequestInterceptor;
|
||||||
import com.aizuda.easy.retry.server.common.dto.CallbackConfig;
|
import com.aizuda.easy.retry.server.common.dto.CallbackConfig;
|
||||||
import com.aizuda.easy.retry.server.common.enums.ContentTypeEnum;
|
import com.aizuda.easy.retry.server.common.enums.ContentTypeEnum;
|
||||||
|
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
|
||||||
import com.aizuda.easy.retry.server.job.task.dto.JobLogDTO;
|
import com.aizuda.easy.retry.server.job.task.dto.JobLogDTO;
|
||||||
import com.aizuda.easy.retry.server.job.task.dto.LogMetaDTO;
|
import com.aizuda.easy.retry.server.job.task.dto.LogMetaDTO;
|
||||||
|
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
|
||||||
import com.aizuda.easy.retry.server.job.task.support.WorkflowTaskConverter;
|
import com.aizuda.easy.retry.server.job.task.support.WorkflowTaskConverter;
|
||||||
import com.aizuda.easy.retry.server.model.dto.CallbackParamsDTO;
|
import com.aizuda.easy.retry.server.model.dto.CallbackParamsDTO;
|
||||||
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper;
|
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper;
|
||||||
@ -32,6 +34,7 @@ import org.springframework.http.ResponseEntity;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -108,7 +111,6 @@ public class CallbackWorkflowExecutor extends AbstractWorkflowExecutor {
|
|||||||
context.setJobTaskStatus(jobTaskStatus);
|
context.setJobTaskStatus(jobTaskStatus);
|
||||||
context.setEvaluationResult(result);
|
context.setEvaluationResult(result);
|
||||||
context.setLogMessage(message);
|
context.setLogMessage(message);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -129,6 +131,14 @@ public class CallbackWorkflowExecutor extends AbstractWorkflowExecutor {
|
|||||||
logMetaDTO.setTaskBatchId(jobTaskBatch.getId());
|
logMetaDTO.setTaskBatchId(jobTaskBatch.getId());
|
||||||
logMetaDTO.setJobId(SystemConstants.CALLBACK_JOB_ID);
|
logMetaDTO.setJobId(SystemConstants.CALLBACK_JOB_ID);
|
||||||
logMetaDTO.setTaskId(jobTask.getId());
|
logMetaDTO.setTaskId(jobTask.getId());
|
||||||
|
if (jobTaskBatch.getTaskBatchStatus() == JobTaskStatusEnum.SUCCESS.getStatus()) {
|
||||||
EasyRetryLog.REMOTE.info("workflowNodeId:[{}] 回调成功. <|>{}<|>", context.getWorkflowNodeId(), logMetaDTO);
|
EasyRetryLog.REMOTE.info("workflowNodeId:[{}] 回调成功. <|>{}<|>", context.getWorkflowNodeId(), logMetaDTO);
|
||||||
|
} else {
|
||||||
|
EasyRetryLog.REMOTE.info("workflowNodeId:[{}] 回调失败. 失败原因:[{}] <|>{}<|>", context.getWorkflowNodeId(),
|
||||||
|
context.getLogMessage(), logMetaDTO);
|
||||||
|
|
||||||
|
// 尝试完成任务
|
||||||
|
workflowBatchHandler.complete(context.getWorkflowTaskBatchId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,15 +52,14 @@ import static com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum.NOT
|
|||||||
public class WorkflowBatchHandler {
|
public class WorkflowBatchHandler {
|
||||||
|
|
||||||
private final WorkflowTaskBatchMapper workflowTaskBatchMapper;
|
private final WorkflowTaskBatchMapper workflowTaskBatchMapper;
|
||||||
private final WorkflowNodeMapper workflowNodeMapper;
|
|
||||||
private final JobMapper jobMapper;
|
private final JobMapper jobMapper;
|
||||||
private final JobTaskBatchMapper jobTaskBatchMapper;
|
private final JobTaskBatchMapper jobTaskBatchMapper;
|
||||||
|
|
||||||
public boolean complete(Long workflowTaskBatchId) throws IOException {
|
public boolean complete(Long workflowTaskBatchId) {
|
||||||
return complete(workflowTaskBatchId, null);
|
return complete(workflowTaskBatchId, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean complete(Long workflowTaskBatchId, WorkflowTaskBatch workflowTaskBatch) throws IOException {
|
public boolean complete(Long workflowTaskBatchId, WorkflowTaskBatch workflowTaskBatch) {
|
||||||
workflowTaskBatch = Optional.ofNullable(workflowTaskBatch)
|
workflowTaskBatch = Optional.ofNullable(workflowTaskBatch)
|
||||||
.orElseGet(() -> workflowTaskBatchMapper.selectById(workflowTaskBatchId));
|
.orElseGet(() -> workflowTaskBatchMapper.selectById(workflowTaskBatchId));
|
||||||
Assert.notNull(workflowTaskBatch, () -> new EasyRetryServerException("任务不存在"));
|
Assert.notNull(workflowTaskBatch, () -> new EasyRetryServerException("任务不存在"));
|
||||||
@ -83,10 +82,6 @@ public class WorkflowBatchHandler {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<WorkflowNode> workflowNodes = workflowNodeMapper.selectList(new LambdaQueryWrapper<WorkflowNode>()
|
|
||||||
.eq(WorkflowNode::getWorkflowNodeStatus, StatusEnum.YES.getStatus())
|
|
||||||
.in(WorkflowNode::getId, graph.nodes()));
|
|
||||||
|
|
||||||
Map<Long, List<JobTaskBatch>> currentWorkflowNodeMap = jobTaskBatches.stream()
|
Map<Long, List<JobTaskBatch>> currentWorkflowNodeMap = jobTaskBatches.stream()
|
||||||
.collect(Collectors.groupingBy(JobTaskBatch::getWorkflowNodeId));
|
.collect(Collectors.groupingBy(JobTaskBatch::getWorkflowNodeId));
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ public class RunningWorkflowPrepareHandler extends AbstractWorkflowPrePareHandle
|
|||||||
protected void doHandler(WorkflowTaskPrepareDTO prepare) {
|
protected void doHandler(WorkflowTaskPrepareDTO prepare) {
|
||||||
log.info("存在运行中的任务. prepare:[{}]", JsonUtil.toJsonString(prepare));
|
log.info("存在运行中的任务. prepare:[{}]", JsonUtil.toJsonString(prepare));
|
||||||
|
|
||||||
try {
|
|
||||||
// 1. 若DAG已经支持完成了,由于异常原因导致的没有更新成终态此次进行一次更新操作
|
// 1. 若DAG已经支持完成了,由于异常原因导致的没有更新成终态此次进行一次更新操作
|
||||||
int blockStrategy = prepare.getBlockStrategy();
|
int blockStrategy = prepare.getBlockStrategy();
|
||||||
if (workflowBatchHandler.complete(prepare.getWorkflowTaskBatchId())) {
|
if (workflowBatchHandler.complete(prepare.getWorkflowTaskBatchId())) {
|
||||||
@ -69,11 +69,6 @@ public class RunningWorkflowPrepareHandler extends AbstractWorkflowPrePareHandle
|
|||||||
WorkflowBlockStrategyContext workflowBlockStrategyContext = WorkflowTaskConverter.INSTANCE.toWorkflowBlockStrategyContext(
|
WorkflowBlockStrategyContext workflowBlockStrategyContext = WorkflowTaskConverter.INSTANCE.toWorkflowBlockStrategyContext(
|
||||||
prepare);
|
prepare);
|
||||||
blockStrategyInterface.block(workflowBlockStrategyContext);
|
blockStrategyInterface.block(workflowBlockStrategyContext);
|
||||||
} catch (IOException e) {
|
|
||||||
log.error("更新任务状态失败. prepare:[{}]", JsonUtil.toJsonString(prepare), e);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user