feat: 2.6.0:
1、日志归档定时任务
This commit is contained in:
parent
105076d033
commit
e2a34f9e3a
@ -60,6 +60,9 @@ public class LogTaskDTO implements Serializable {
|
||||
*/
|
||||
private Long realTime;
|
||||
|
||||
/**
|
||||
* 日志模型集合
|
||||
*/
|
||||
private List<TaskLogFieldDTO> fieldList;
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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 {
|
||||
}
|
@ -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<Long, List<LogTaskDTO>> logTaskDTOMap = JsonUtil.parseList(JsonUtil.toJsonString(args[0]), LogTaskDTO.class).stream().collect(
|
||||
Collectors.groupingBy(i -> i.getTaskId(), Collectors.toList()));
|
||||
Map<Long, List<LogTaskDTO>> logTaskDTOMap = JsonUtil.parseList(JsonUtil.toJsonString(args[0]), LogTaskDTO.class).stream().collect(Collectors.groupingBy(i -> i.getTaskId(), Collectors.toList()));
|
||||
|
||||
List<JobLogMessage> jobLogMessageList = new ArrayList<>();
|
||||
for (List<LogTaskDTO> 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<Map<String, String>> 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()));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user