feat: 2.6.0
1. 优化取消日志信息
This commit is contained in:
		
							parent
							
								
									e383abacad
								
							
						
					
					
						commit
						7b696254b8
					
				@ -2,6 +2,7 @@ package com.aizuda.easy.retry.server.job.task.dto;
 | 
			
		||||
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @author xiaowoniu
 | 
			
		||||
 * @date 2023-12-24 23:00:24
 | 
			
		||||
 | 
			
		||||
@ -178,6 +178,7 @@ public class JobExecutorActor extends AbstractActor {
 | 
			
		||||
        if (Objects.isNull(job)
 | 
			
		||||
            || JobTaskExecutorSceneEnum.MANUAL_JOB.getType().equals(taskExecuteDTO.getTaskExecutorScene())
 | 
			
		||||
            || JobTaskExecutorSceneEnum.AUTO_WORKFLOW.getType().equals(taskExecuteDTO.getTaskExecutorScene())
 | 
			
		||||
            || JobTaskExecutorSceneEnum.MANUAL_WORKFLOW.getType().equals(taskExecuteDTO.getTaskExecutorScene())
 | 
			
		||||
            // 是否是常驻任务
 | 
			
		||||
            || Objects.equals(StatusEnum.NO.getStatus(), job.getResident())
 | 
			
		||||
        ) {
 | 
			
		||||
 | 
			
		||||
@ -84,7 +84,7 @@ public class ScanWorkflowTaskActor extends AbstractActor {
 | 
			
		||||
        for (final WorkflowTaskPrepareDTO waitExecTask : waitExecWorkflows) {
 | 
			
		||||
            // 执行预处理阶段
 | 
			
		||||
            ActorRef actorRef = ActorGenerator.workflowTaskPrepareActor();
 | 
			
		||||
            waitExecTask.setTaskExecutorScene(JobTaskExecutorSceneEnum.AUTO_JOB.getType());
 | 
			
		||||
            waitExecTask.setTaskExecutorScene(JobTaskExecutorSceneEnum.AUTO_WORKFLOW.getType());
 | 
			
		||||
            actorRef.tell(waitExecTask, actorRef);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -14,6 +14,8 @@ import com.aizuda.easy.retry.server.common.dto.CallbackConfig;
 | 
			
		||||
import com.aizuda.easy.retry.server.common.enums.ContentTypeEnum;
 | 
			
		||||
import com.aizuda.easy.retry.server.job.task.dto.LogMetaDTO;
 | 
			
		||||
import com.aizuda.easy.retry.server.job.task.support.WorkflowTaskConverter;
 | 
			
		||||
import com.aizuda.easy.retry.server.job.task.support.generator.batch.JobTaskBatchGenerator;
 | 
			
		||||
import com.aizuda.easy.retry.server.job.task.support.generator.batch.JobTaskBatchGeneratorContext;
 | 
			
		||||
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.po.JobTask;
 | 
			
		||||
@ -171,15 +173,15 @@ public class CallbackWorkflowExecutor extends AbstractWorkflowExecutor {
 | 
			
		||||
        logMetaDTO.setJobId(SystemConstants.CALLBACK_JOB_ID);
 | 
			
		||||
        logMetaDTO.setTaskId(jobTask.getId());
 | 
			
		||||
        if (jobTaskBatch.getTaskBatchStatus() == JobTaskStatusEnum.SUCCESS.getStatus()) {
 | 
			
		||||
            EasyRetryLog.REMOTE.info("回调成功. \n workflowNodeId:{} \n回调参数:{} \n回调结果:[{}] <|>{}<|>",
 | 
			
		||||
            EasyRetryLog.REMOTE.info("节点[{}]回调成功.\n回调参数:{} \n回调结果:[{}] <|>{}<|>",
 | 
			
		||||
                    context.getWorkflowNodeId(), context.getTaskResult(), context.getEvaluationResult(), logMetaDTO);
 | 
			
		||||
        } else if (jobTaskBatch.getTaskBatchStatus() == JobTaskStatusEnum.CANCEL.getStatus()) {
 | 
			
		||||
            EasyRetryLog.REMOTE.warn("节点[{}]取消回调. 取消原因: 任务状态已关闭 <|>{}<|>",
 | 
			
		||||
                    context.getWorkflowNodeId(), logMetaDTO);
 | 
			
		||||
        } else {
 | 
			
		||||
            EasyRetryLog.REMOTE.error(" 回调失败.\n workflowNodeId:{} \n失败原因:{} <|>{}<|>",
 | 
			
		||||
            EasyRetryLog.REMOTE.error("节点[{}]回调失败.\n失败原因:{} <|>{}<|>",
 | 
			
		||||
                    context.getWorkflowNodeId(),
 | 
			
		||||
                    context.getLogMessage(), logMetaDTO);
 | 
			
		||||
 | 
			
		||||
            // 尝试完成任务
 | 
			
		||||
            workflowBatchHandler.complete(context.getWorkflowTaskBatchId());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -147,10 +147,10 @@ public class DecisionWorkflowExecutor extends AbstractWorkflowExecutor {
 | 
			
		||||
        logMetaDTO.setTaskId(jobTask.getId());
 | 
			
		||||
        if (jobTaskBatch.getTaskBatchStatus() == JobTaskStatusEnum.SUCCESS.getStatus()
 | 
			
		||||
            || JobOperationReasonEnum.WORKFLOW_NODE_NO_REQUIRED.getReason() == context.getOperationReason()) {
 | 
			
		||||
            EasyRetryLog.REMOTE.info("workflowNodeId:[{}]决策完成. 上下文:[{}] 决策结果:[{}] <|>{}<|>",
 | 
			
		||||
            EasyRetryLog.REMOTE.info("节点Id:[{}] 决策完成. 上下文:[{}] 决策结果:[{}] <|>{}<|>",
 | 
			
		||||
                context.getWorkflowNodeId(), context.getTaskResult(), context.getEvaluationResult(), logMetaDTO);
 | 
			
		||||
        } else {
 | 
			
		||||
            EasyRetryLog.REMOTE.error("workflowNodeId:[{}] 决策失败. 上下文:[{}] 失败原因:[{}] <|>{}<|>",
 | 
			
		||||
            EasyRetryLog.REMOTE.error("节点Id:[{}] 决策失败. 上下文:[{}] 失败原因:[{}] <|>{}<|>",
 | 
			
		||||
                context.getWorkflowNodeId(), context.getTaskResult(), context.getLogMessage(), logMetaDTO);
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -1,19 +1,24 @@
 | 
			
		||||
package com.aizuda.easy.retry.server.job.task.support.executor.workflow;
 | 
			
		||||
 | 
			
		||||
import akka.actor.ActorRef;
 | 
			
		||||
import com.aizuda.easy.retry.common.core.constant.SystemConstants;
 | 
			
		||||
import com.aizuda.easy.retry.common.core.enums.JobOperationReasonEnum;
 | 
			
		||||
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
 | 
			
		||||
import com.aizuda.easy.retry.common.core.enums.JobTaskStatusEnum;
 | 
			
		||||
import com.aizuda.easy.retry.common.core.enums.StatusEnum;
 | 
			
		||||
import com.aizuda.easy.retry.common.core.enums.WorkflowNodeTypeEnum;
 | 
			
		||||
import com.aizuda.easy.retry.common.log.EasyRetryLog;
 | 
			
		||||
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
 | 
			
		||||
import com.aizuda.easy.retry.server.common.enums.JobTaskExecutorSceneEnum;
 | 
			
		||||
import com.aizuda.easy.retry.server.common.util.DateUtils;
 | 
			
		||||
import com.aizuda.easy.retry.server.job.task.dto.JobTaskPrepareDTO;
 | 
			
		||||
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.generator.batch.JobTaskBatchGenerator;
 | 
			
		||||
import com.aizuda.easy.retry.server.job.task.support.generator.batch.JobTaskBatchGeneratorContext;
 | 
			
		||||
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
 | 
			
		||||
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTaskBatch;
 | 
			
		||||
import lombok.RequiredArgsConstructor;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
 | 
			
		||||
@ -28,8 +33,6 @@ import java.util.Objects;
 | 
			
		||||
@RequiredArgsConstructor
 | 
			
		||||
public class JobTaskWorkflowExecutor extends AbstractWorkflowExecutor {
 | 
			
		||||
 | 
			
		||||
    private final JobTaskBatchGenerator jobTaskBatchGenerator;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public WorkflowNodeTypeEnum getWorkflowNodeType() {
 | 
			
		||||
        return WorkflowNodeTypeEnum.JOB_TASK;
 | 
			
		||||
@ -42,7 +45,22 @@ public class JobTaskWorkflowExecutor extends AbstractWorkflowExecutor {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    protected void afterExecute(WorkflowExecutorContext context) {
 | 
			
		||||
        if (Objects.equals(context.getWorkflowNodeStatus(), StatusEnum.YES.getStatus())) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        JobTaskBatch jobTaskBatch = generateJobTaskBatch(context);
 | 
			
		||||
        JobTask jobTask = generateJobTask(context, jobTaskBatch);
 | 
			
		||||
 | 
			
		||||
        LogMetaDTO logMetaDTO = new LogMetaDTO();
 | 
			
		||||
        logMetaDTO.setNamespaceId(context.getNamespaceId());
 | 
			
		||||
        logMetaDTO.setGroupName(context.getGroupName());
 | 
			
		||||
        logMetaDTO.setTaskBatchId(jobTaskBatch.getId());
 | 
			
		||||
        logMetaDTO.setJobId(context.getJobId());
 | 
			
		||||
        logMetaDTO.setTaskId(jobTask.getId());
 | 
			
		||||
 | 
			
		||||
        EasyRetryLog.REMOTE.warn("节点[{}]已取消任务执行. 取消原因: 任务已关闭. <|>{}<|>",
 | 
			
		||||
                context.getWorkflowNodeId(), logMetaDTO);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@ -54,13 +72,9 @@ public class JobTaskWorkflowExecutor extends AbstractWorkflowExecutor {
 | 
			
		||||
    protected void doExecute(WorkflowExecutorContext context) {
 | 
			
		||||
 | 
			
		||||
        if (Objects.equals(context.getWorkflowNodeStatus(), StatusEnum.NO.getStatus())) {
 | 
			
		||||
            JobTaskBatchGeneratorContext generatorContext = WorkflowTaskConverter.INSTANCE.toJobTaskBatchGeneratorContext(context);
 | 
			
		||||
            generatorContext.setTaskBatchStatus(JobTaskBatchStatusEnum.CANCEL.getStatus());
 | 
			
		||||
            generatorContext.setOperationReason(JobOperationReasonEnum.WORKFLOW_NODE_CLOSED_SKIP_EXECUTION.getReason());
 | 
			
		||||
            generatorContext.setJobId(context.getJobId());
 | 
			
		||||
            generatorContext.setTaskExecutorScene(context.getTaskExecutorScene());
 | 
			
		||||
            jobTaskBatchGenerator.generateJobTaskBatch(generatorContext);
 | 
			
		||||
            workflowBatchHandler.complete(context.getWorkflowTaskBatchId());
 | 
			
		||||
            context.setTaskBatchStatus(JobTaskBatchStatusEnum.CANCEL.getStatus());
 | 
			
		||||
            context.setOperationReason(JobOperationReasonEnum.WORKFLOW_NODE_CLOSED_SKIP_EXECUTION.getReason());
 | 
			
		||||
            context.setJobTaskStatus(JobTaskStatusEnum.CANCEL.getStatus());
 | 
			
		||||
 | 
			
		||||
            // 执行下一个节点
 | 
			
		||||
            workflowTaskExecutor(context);
 | 
			
		||||
@ -73,11 +87,7 @@ public class JobTaskWorkflowExecutor extends AbstractWorkflowExecutor {
 | 
			
		||||
    private static void invokeJobTask(final WorkflowExecutorContext context) {
 | 
			
		||||
        // 生成任务批次
 | 
			
		||||
        JobTaskPrepareDTO jobTaskPrepare = JobTaskConverter.INSTANCE.toJobTaskPrepare(context.getJob(), context);
 | 
			
		||||
//        jobTaskPrepare.setTaskExecutorScene(context.getTaskExecutorScene());
 | 
			
		||||
        jobTaskPrepare.setNextTriggerAt(DateUtils.toNowMilli() + DateUtils.toNowMilli() % 1000);
 | 
			
		||||
//        jobTaskPrepare.setWorkflowNodeId(context.getWorkflowNodeId());
 | 
			
		||||
//        jobTaskPrepare.setWorkflowTaskBatchId(context.getWorkflowTaskBatchId());
 | 
			
		||||
//        jobTaskPrepare.setParentWorkflowNodeId(context.getParentWorkflowNodeId());
 | 
			
		||||
        // 执行预处理阶段
 | 
			
		||||
        ActorRef actorRef = ActorGenerator.jobTaskPrepareActor();
 | 
			
		||||
        actorRef.tell(jobTaskPrepare, actorRef);
 | 
			
		||||
 | 
			
		||||
@ -68,7 +68,7 @@ public class JobTaskBatchGenerator {
 | 
			
		||||
                        try {
 | 
			
		||||
                            WorkflowNodeTaskExecuteDTO taskExecuteDTO = new WorkflowNodeTaskExecuteDTO();
 | 
			
		||||
                            taskExecuteDTO.setWorkflowTaskBatchId(context.getWorkflowTaskBatchId());
 | 
			
		||||
                            taskExecuteDTO.setTaskExecutorScene(JobTaskExecutorSceneEnum.AUTO_JOB.getType());
 | 
			
		||||
                            taskExecuteDTO.setTaskExecutorScene(context.getTaskExecutorScene());
 | 
			
		||||
                            taskExecuteDTO.setParentId(context.getWorkflowNodeId());
 | 
			
		||||
                            ActorRef actorRef = ActorGenerator.workflowTaskExecutorActor();
 | 
			
		||||
                            actorRef.tell(taskExecuteDTO, actorRef);
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								frontend/public/lib/assets/Z7fZzXo1.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								frontend/public/lib/assets/Z7fZzXo1.css
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -5,8 +5,8 @@
 | 
			
		||||
  <meta charset="UTF-8" />
 | 
			
		||||
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 | 
			
		||||
  <title>Easy Retry</title>
 | 
			
		||||
  <script type="module" crossorigin src="./assets/gfVhN6lL.js"></script>
 | 
			
		||||
  <link rel="stylesheet" crossorigin href="./assets/-o3uFske.css">
 | 
			
		||||
  <script type="module" crossorigin src="./assets/1RK3CeRh.js"></script>
 | 
			
		||||
  <link rel="stylesheet" crossorigin href="./assets/Z7fZzXo1.css">
 | 
			
		||||
</head>
 | 
			
		||||
 | 
			
		||||
<body>
 | 
			
		||||
 | 
			
		||||
@ -169,6 +169,35 @@ export default {
 | 
			
		||||
  display: flex !important;
 | 
			
		||||
  flex-direction: column;
 | 
			
		||||
 | 
			
		||||
  // 美化滚动条
 | 
			
		||||
  ::-webkit-scrollbar {
 | 
			
		||||
    width: 10px;
 | 
			
		||||
    height: 10px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ::-webkit-scrollbar-track {
 | 
			
		||||
    width: 6px;
 | 
			
		||||
    background: rgba(#101F1C, 0.1);
 | 
			
		||||
    -webkit-border-radius: 2em;
 | 
			
		||||
    -moz-border-radius: 2em;
 | 
			
		||||
    border-radius: 2em;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ::-webkit-scrollbar-thumb {
 | 
			
		||||
    background-color: rgba(144,147,153,.5);
 | 
			
		||||
    background-clip: padding-box;
 | 
			
		||||
    min-height: 28px;
 | 
			
		||||
    -webkit-border-radius: 2em;
 | 
			
		||||
    -moz-border-radius: 2em;
 | 
			
		||||
    border-radius: 2em;
 | 
			
		||||
    transition: background-color .3s;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ::-webkit-scrollbar-thumb:hover {
 | 
			
		||||
    background-color: rgba(144,147,153,.3);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .scroller {
 | 
			
		||||
    height: 100%;
 | 
			
		||||
    overflow: auto;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user