From 8da7ec673aa13568e6c2de83a8ca34e2b1ec9f4e Mon Sep 17 00:00:00 2001 From: byteblogs168 <598092184@qq.com> Date: Thu, 11 Jan 2024 17:43:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=202.6.0=201.=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=B5=81=E7=A8=8B=E6=8E=A5=E5=85=A5=E5=AE=9E=E6=97=B6?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../retry/server/job/task/dto/LogMetaDTO.java | 5 +++++ .../job/task/support/JobTaskConverter.java | 4 ++-- .../support/block/job/BlockStrategies.java | 6 ++++++ .../dispatch/JobExecutorResultActor.java | 14 ++++++++----- .../executor/job/RequestClientActor.java | 9 ++++---- .../convert/JobLogResponseVOConverter.java | 21 ------------------- .../web/service/impl/JobLogServiceImpl.java | 7 ------- 7 files changed, 27 insertions(+), 39 deletions(-) delete mode 100644 easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/JobLogResponseVOConverter.java diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/dto/LogMetaDTO.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/dto/LogMetaDTO.java index cd32b32e..815cf48d 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/dto/LogMetaDTO.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/dto/LogMetaDTO.java @@ -36,6 +36,11 @@ public class LogMetaDTO { */ private Long taskId; + /** + * 时间 + */ + private Long timestamp; + @Override public String toString() { return JsonUtil.toJsonString(this); diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/JobTaskConverter.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/JobTaskConverter.java index a31f8302..cceaf45a 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/JobTaskConverter.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/JobTaskConverter.java @@ -65,9 +65,9 @@ public interface JobTaskConverter { JobLogDTO toJobLogDTO(JobExecutorContext context); - JobLogDTO toJobLogDTO(JobExecutorResultDTO resultDTO); + LogMetaDTO toJobLogDTO(JobExecutorResultDTO resultDTO); - JobLogDTO toJobLogDTO(BaseDTO baseDTO); + LogMetaDTO toJobLogDTO(BaseDTO baseDTO); ClientCallbackContext toClientCallbackContext(DispatchJobResultRequest request); diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/block/job/BlockStrategies.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/block/job/BlockStrategies.java index 7c1e7fa7..a8093178 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/block/job/BlockStrategies.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/block/job/BlockStrategies.java @@ -11,6 +11,7 @@ import com.aizuda.easy.retry.server.job.task.support.generator.batch.JobTaskBatc import com.aizuda.easy.retry.server.job.task.support.stop.JobTaskStopFactory; import com.aizuda.easy.retry.server.job.task.support.JobTaskStopHandler; import com.aizuda.easy.retry.server.job.task.support.stop.TaskStopJobContext; +import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskExecutorSceneEnum; import lombok.AllArgsConstructor; import lombok.Data; import lombok.Getter; @@ -81,6 +82,11 @@ public class BlockStrategies { private Integer operationReason; + /** + * 执行策略 1、auto 2、manual 3、workflow + */ + private Integer taskExecutorScene; + } private static final class DiscardBlockStrategy implements BlockStrategy { diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/dispatch/JobExecutorResultActor.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/dispatch/JobExecutorResultActor.java index ec9e82f9..d90da381 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/dispatch/JobExecutorResultActor.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/dispatch/JobExecutorResultActor.java @@ -6,9 +6,12 @@ import cn.hutool.core.lang.Assert; import com.aizuda.easy.retry.common.core.enums.JobTaskTypeEnum; import com.aizuda.easy.retry.common.core.log.LogUtils; import com.aizuda.easy.retry.common.core.util.JsonUtil; +import com.aizuda.easy.retry.common.log.EasyRetryLog; import com.aizuda.easy.retry.server.common.akka.ActorGenerator; import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException; +import com.aizuda.easy.retry.server.common.util.DateUtils; import com.aizuda.easy.retry.server.job.task.dto.CompleteJobBatchDTO; +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.dto.JobExecutorResultDTO; import com.aizuda.easy.retry.server.job.task.dto.JobLogDTO; @@ -28,6 +31,7 @@ import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.TransactionCallbackWithoutResult; import org.springframework.transaction.support.TransactionTemplate; +import java.time.LocalDateTime; import java.util.Objects; /** @@ -84,11 +88,11 @@ public class JobExecutorResultActor extends AbstractActor { } }); - JobLogDTO jobLogDTO = JobTaskConverter.INSTANCE.toJobLogDTO(result); - jobLogDTO.setMessage(result.getMessage()); - jobLogDTO.setTaskId(result.getTaskId()); - ActorRef actorRef = ActorGenerator.jobLogActor(); - actorRef.tell(jobLogDTO, actorRef); + LogMetaDTO logMetaDTO = JobTaskConverter.INSTANCE.toJobLogDTO(result); + // 防止客户端日志还未上报完成,导致日志时序错误 + logMetaDTO.setTimestamp(DateUtils.toEpochMilli(LocalDateTime.now().plusHours(1))); + EasyRetryLog.REMOTE.info("taskId:[{}] 任务执行成功. <|>{}<|>", logMetaDTO.getTaskId(), logMetaDTO); + } catch (Exception e) { LogUtils.error(log, " job executor result exception. [{}]", result, e); } finally { diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/executor/job/RequestClientActor.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/executor/job/RequestClientActor.java index 6fb74cb6..e5f1c446 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/executor/job/RequestClientActor.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/executor/job/RequestClientActor.java @@ -4,10 +4,12 @@ import akka.actor.AbstractActor; import akka.actor.ActorRef; import com.aizuda.easy.retry.client.model.ExecuteResult; import com.aizuda.easy.retry.client.model.request.DispatchJobRequest; +import com.aizuda.easy.retry.common.core.constant.SystemConstants; 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.log.LogUtils; import com.aizuda.easy.retry.common.core.model.Result; +import com.aizuda.easy.retry.common.log.EasyRetryLog; import com.aizuda.easy.retry.server.common.akka.ActorGenerator; import com.aizuda.easy.retry.server.common.cache.CacheRegisterTable; import com.aizuda.easy.retry.server.common.client.RequestBuilder; @@ -15,6 +17,7 @@ import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo; import com.aizuda.easy.retry.server.job.task.client.JobRpcClient; import com.aizuda.easy.retry.server.job.task.dto.JobExecutorResultDTO; 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.RealJobExecutorDTO; import com.aizuda.easy.retry.server.job.task.support.ClientCallbackHandler; import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter; @@ -62,7 +65,6 @@ public class RequestClientActor extends AbstractActor { return; } - JobLogDTO jobLogDTO = JobTaskConverter.INSTANCE.toJobLogDTO(realJobExecutorDTO); DispatchJobRequest dispatchJobRequest = JobTaskConverter.INSTANCE.toDispatchJobRequest(realJobExecutorDTO); try { @@ -70,9 +72,8 @@ public class RequestClientActor extends AbstractActor { JobRpcClient rpcClient = buildRpcClient(registerNodeInfo, realJobExecutorDTO); Result dispatch = rpcClient.dispatch(dispatchJobRequest); if (dispatch.getStatus() == StatusEnum.YES.getStatus() && Objects.equals(dispatch.getData(), Boolean.TRUE)) { - jobLogDTO.setMessage("任务调度成功"); - ActorRef actorRef = ActorGenerator.jobLogActor(); - actorRef.tell(jobLogDTO, actorRef); + LogMetaDTO logMetaDTO = JobTaskConverter.INSTANCE.toJobLogDTO(realJobExecutorDTO); + EasyRetryLog.REMOTE.info("taskId:[{}] 任务调度成功. <|>{}<|>", logMetaDTO.getTaskId(), logMetaDTO); } else { // 客户端返回失败,则认为任务执行失败 ClientCallbackHandler clientCallback = ClientCallbackFactory.getClientCallback(realJobExecutorDTO.getTaskType()); diff --git a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/JobLogResponseVOConverter.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/JobLogResponseVOConverter.java deleted file mode 100644 index 2c3c7393..00000000 --- a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/convert/JobLogResponseVOConverter.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.aizuda.easy.retry.server.web.service.convert; - -import com.aizuda.easy.retry.server.web.model.response.JobLogResponseVO; -import com.aizuda.easy.retry.template.datasource.persistence.po.JobLogMessage; -import org.mapstruct.Mapper; -import org.mapstruct.factory.Mappers; - -import java.util.List; - -/** - * @author: www.byteblogs.com - * @date : 2023-10-12 11:27 - * @since : 2.4.0 - */ -@Mapper -public interface JobLogResponseVOConverter { - JobLogResponseVOConverter INSTANCE = Mappers.getMapper(JobLogResponseVOConverter.class); - - List toJobLogResponseVOs(List jobLogMessages); - -} diff --git a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/JobLogServiceImpl.java b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/JobLogServiceImpl.java index 1048d780..518eae55 100644 --- a/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/JobLogServiceImpl.java +++ b/easy-retry-server/easy-retry-server-web/src/main/java/com/aizuda/easy/retry/server/web/service/impl/JobLogServiceImpl.java @@ -1,12 +1,9 @@ package com.aizuda.easy.retry.server.web.service.impl; -import cn.hutool.core.util.ArrayUtil; import com.aizuda.easy.retry.common.core.util.JsonUtil; -import com.aizuda.easy.retry.server.web.model.base.PageResult; import com.aizuda.easy.retry.server.web.model.request.JobLogQueryVO; import com.aizuda.easy.retry.server.web.model.response.JobLogResponseVO; import com.aizuda.easy.retry.server.web.service.JobLogService; -import com.aizuda.easy.retry.server.web.service.convert.JobLogResponseVOConverter; import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobLogMessageMapper; import com.aizuda.easy.retry.template.datasource.persistence.po.JobLogMessage; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -17,8 +14,6 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; -import java.util.Map; -import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; @@ -42,8 +37,6 @@ public class JobLogServiceImpl implements JobLogService { queryWrapper .select(JobLogMessage::getId, JobLogMessage::getLogNum) .ge(JobLogMessage::getId, queryVO.getStartId()) - .eq(JobLogMessage::getJobId, queryVO.getJobId()) - .eq(JobLogMessage::getTaskBatchId, queryVO.getTaskBatchId()) .eq(JobLogMessage::getTaskId, queryVO.getTaskId()); queryWrapper.orderByAsc(JobLogMessage::getRealTime).orderByDesc(JobLogMessage::getId);