From e2a34f9e3a314a7a8af89fbe186f2282adbcd4cd Mon Sep 17 00:00:00 2001 From: zhengweilin Date: Thu, 4 Jan 2024 10:25:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=202.6.0:=201=E3=80=81=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=BD=92=E6=A1=A3=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../retry/server/model/dto/LogTaskDTO.java | 3 +++ .../job/task/support/JobTaskConverter.java | 9 ++++++-- .../schedule/JobLogArchivingSchedule.java | 16 ++++++++++++++ .../handler/ReportLogHttpRequestHandler.java | 22 ++++++------------- 4 files changed, 33 insertions(+), 17 deletions(-) create mode 100644 easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/schedule/JobLogArchivingSchedule.java diff --git a/easy-retry-common/easy-retry-common-server-api/src/main/java/com/aizuda/easy/retry/server/model/dto/LogTaskDTO.java b/easy-retry-common/easy-retry-common-server-api/src/main/java/com/aizuda/easy/retry/server/model/dto/LogTaskDTO.java index c3cf5392..d44ebc33 100644 --- a/easy-retry-common/easy-retry-common-server-api/src/main/java/com/aizuda/easy/retry/server/model/dto/LogTaskDTO.java +++ b/easy-retry-common/easy-retry-common-server-api/src/main/java/com/aizuda/easy/retry/server/model/dto/LogTaskDTO.java @@ -60,6 +60,9 @@ public class LogTaskDTO implements Serializable { */ private Long realTime; + /** + * 日志模型集合 + */ private List fieldList; } 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 f702089e..98dd3b3e 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 @@ -9,6 +9,7 @@ import com.aizuda.easy.retry.server.job.task.support.callback.ClientCallbackCont import com.aizuda.easy.retry.server.job.task.support.executor.JobExecutorContext; import com.aizuda.easy.retry.server.job.task.support.stop.TaskStopJobContext; import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies; +import com.aizuda.easy.retry.server.model.dto.LogTaskDTO; import com.aizuda.easy.retry.template.datasource.persistence.po.Job; import com.aizuda.easy.retry.template.datasource.persistence.po.JobLogMessage; import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask; @@ -35,7 +36,7 @@ public interface JobTaskConverter { JobTaskPrepareDTO toJobTaskPrepare(JobPartitionTask job); @Mappings( - @Mapping(source = "id", target = "jobId") + @Mapping(source = "id", target = "jobId") ) JobTaskPrepareDTO toJobTaskPrepare(Job job); @@ -50,11 +51,15 @@ public interface JobTaskConverter { BlockStrategies.BlockStrategyContext toBlockStrategyContext(JobTaskPrepareDTO prepareDTO); TaskStopJobContext toStopJobContext(BlockStrategies.BlockStrategyContext context); + TaskStopJobContext toStopJobContext(JobExecutorResultDTO context); + TaskStopJobContext toStopJobContext(JobTaskPrepareDTO context); JobLogMessage toJobLogMessage(JobLogDTO jobLogDTO); + JobLogMessage toJobLogMessage(LogTaskDTO logTaskDTO); + JobLogDTO toJobLogDTO(JobExecutorContext context); JobLogDTO toJobLogDTO(JobExecutorResultDTO resultDTO); @@ -86,7 +91,7 @@ public interface JobTaskConverter { JobExecutorResultDTO toJobExecutorResultDTO(ClientCallbackContext context); @Mappings( - @Mapping(source = "id", target = "taskId") + @Mapping(source = "id", target = "taskId") ) JobExecutorResultDTO toJobExecutorResultDTO(JobTask jobTask); diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/schedule/JobLogArchivingSchedule.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/schedule/JobLogArchivingSchedule.java new file mode 100644 index 00000000..ef663ec1 --- /dev/null +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/schedule/JobLogArchivingSchedule.java @@ -0,0 +1,16 @@ +package com.aizuda.easy.retry.server.job.task.support.schedule; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * jogLogMessage 日志归档 + * + * @author zhengweilin + * @version 2.6.0 + * @date 2024/01/04 + */ +@Slf4j +@Component +public class JobLogArchivingSchedule { +} diff --git a/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/starter/server/handler/ReportLogHttpRequestHandler.java b/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/starter/server/handler/ReportLogHttpRequestHandler.java index a38453b8..668d7ba1 100644 --- a/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/starter/server/handler/ReportLogHttpRequestHandler.java +++ b/easy-retry-server/easy-retry-server-starter/src/main/java/com/aizuda/easy/retry/server/starter/server/handler/ReportLogHttpRequestHandler.java @@ -9,6 +9,7 @@ import com.aizuda.easy.retry.common.core.model.NettyResult; import com.aizuda.easy.retry.common.core.util.JsonUtil; import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException; import com.aizuda.easy.retry.server.common.handler.PostHttpRequestHandler; +import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter; import com.aizuda.easy.retry.server.model.dto.LogTaskDTO; import com.aizuda.easy.retry.server.model.dto.TaskLogFieldDTO; import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobLogMessageMapper; @@ -56,39 +57,30 @@ public class ReportLogHttpRequestHandler extends PostHttpRequestHandler { @Override @Transactional public String doHandler(String content, UrlQuery urlQuery, HttpHeaders headers) { - LogUtils.info(log, "Batch Log Report Retry Data. Content:[{}]", content); + LogUtils.info(log, "Begin Handler Log Report Data. <|>{}<|>", content); EasyRetryRequest retryRequest = JsonUtil.parseObject(content, EasyRetryRequest.class); Object[] args = retryRequest.getArgs(); Assert.notEmpty(args, () -> new EasyRetryServerException("日志上报的数据不能为空. ReqId:[{}]", retryRequest.getReqId())); - Map> logTaskDTOMap = JsonUtil.parseList(JsonUtil.toJsonString(args[0]), LogTaskDTO.class).stream().collect( - Collectors.groupingBy(i -> i.getTaskId(), Collectors.toList())); + Map> logTaskDTOMap = JsonUtil.parseList(JsonUtil.toJsonString(args[0]), LogTaskDTO.class).stream().collect(Collectors.groupingBy(i -> i.getTaskId(), Collectors.toList())); List jobLogMessageList = new ArrayList<>(); for (List logTaskDTOList : logTaskDTOMap.values()) { - LogTaskDTO logTaskDTO = logTaskDTOList.get(0); - JobLogMessage jobLogMessage = new JobLogMessage(); + JobLogMessage jobLogMessage = JobTaskConverter.INSTANCE.toJobLogMessage(logTaskDTOList.get(0)); jobLogMessage.setCreateDt(LocalDateTime.now()); - jobLogMessage.setNamespaceId(logTaskDTO.getNamespaceId()); - jobLogMessage.setGroupName(logTaskDTO.getGroupName()); - jobLogMessage.setJobId(logTaskDTO.getJobId()); - jobLogMessage.setTaskBatchId(logTaskDTO.getTaskBatchId()); - jobLogMessage.setTaskId(logTaskDTO.getTaskId()); jobLogMessage.setLogNum(logTaskDTOList.size()); - jobLogMessage.setRealTime(logTaskDTO.getRealTime()); - - jobLogMessage.setMessage(JsonUtil.toJsonString(logTaskDTOList.stream().map(taskDTO -> taskDTO.getFieldList() + List> messageMapList = logTaskDTOList.stream().map(taskDTO -> taskDTO.getFieldList() .stream().filter(logTaskDTO_ -> !Objects.isNull(logTaskDTO_.getValue())) - .collect(Collectors.toMap(TaskLogFieldDTO::getName, TaskLogFieldDTO::getValue))).collect(Collectors.toList()))); + .collect(Collectors.toMap(TaskLogFieldDTO::getName, TaskLogFieldDTO::getValue))).collect(Collectors.toList()); + jobLogMessage.setMessage(JsonUtil.toJsonString(messageMapList)); jobLogMessageList.add(jobLogMessage); } // 批量新增日志数据 jobLogMessageMapper.batchInsert(jobLogMessageList); - LogUtils.info(log, "Begin Handler Log Report Data. <|>{}<|>", logTaskDTOMap); return JsonUtil.toJsonString(new NettyResult(StatusEnum.YES.getStatus(), "Batch Log Retry Data Upload Processed Successfully", Boolean.TRUE, retryRequest.getReqId())); } }