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 Long realTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 日志模型集合
|
||||||
|
*/
|
||||||
private List<TaskLogFieldDTO> fieldList;
|
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.executor.JobExecutorContext;
|
||||||
import com.aizuda.easy.retry.server.job.task.support.stop.TaskStopJobContext;
|
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.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.Job;
|
||||||
import com.aizuda.easy.retry.template.datasource.persistence.po.JobLogMessage;
|
import com.aizuda.easy.retry.template.datasource.persistence.po.JobLogMessage;
|
||||||
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
|
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
|
||||||
@ -50,11 +51,15 @@ public interface JobTaskConverter {
|
|||||||
BlockStrategies.BlockStrategyContext toBlockStrategyContext(JobTaskPrepareDTO prepareDTO);
|
BlockStrategies.BlockStrategyContext toBlockStrategyContext(JobTaskPrepareDTO prepareDTO);
|
||||||
|
|
||||||
TaskStopJobContext toStopJobContext(BlockStrategies.BlockStrategyContext context);
|
TaskStopJobContext toStopJobContext(BlockStrategies.BlockStrategyContext context);
|
||||||
|
|
||||||
TaskStopJobContext toStopJobContext(JobExecutorResultDTO context);
|
TaskStopJobContext toStopJobContext(JobExecutorResultDTO context);
|
||||||
|
|
||||||
TaskStopJobContext toStopJobContext(JobTaskPrepareDTO context);
|
TaskStopJobContext toStopJobContext(JobTaskPrepareDTO context);
|
||||||
|
|
||||||
JobLogMessage toJobLogMessage(JobLogDTO jobLogDTO);
|
JobLogMessage toJobLogMessage(JobLogDTO jobLogDTO);
|
||||||
|
|
||||||
|
JobLogMessage toJobLogMessage(LogTaskDTO logTaskDTO);
|
||||||
|
|
||||||
JobLogDTO toJobLogDTO(JobExecutorContext context);
|
JobLogDTO toJobLogDTO(JobExecutorContext context);
|
||||||
|
|
||||||
JobLogDTO toJobLogDTO(JobExecutorResultDTO resultDTO);
|
JobLogDTO toJobLogDTO(JobExecutorResultDTO resultDTO);
|
||||||
|
@ -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.common.core.util.JsonUtil;
|
||||||
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
|
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
|
||||||
import com.aizuda.easy.retry.server.common.handler.PostHttpRequestHandler;
|
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.LogTaskDTO;
|
||||||
import com.aizuda.easy.retry.server.model.dto.TaskLogFieldDTO;
|
import com.aizuda.easy.retry.server.model.dto.TaskLogFieldDTO;
|
||||||
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobLogMessageMapper;
|
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobLogMessageMapper;
|
||||||
@ -56,39 +57,30 @@ public class ReportLogHttpRequestHandler extends PostHttpRequestHandler {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public String doHandler(String content, UrlQuery urlQuery, HttpHeaders headers) {
|
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);
|
EasyRetryRequest retryRequest = JsonUtil.parseObject(content, EasyRetryRequest.class);
|
||||||
Object[] args = retryRequest.getArgs();
|
Object[] args = retryRequest.getArgs();
|
||||||
|
|
||||||
Assert.notEmpty(args, () -> new EasyRetryServerException("日志上报的数据不能为空. ReqId:[{}]", retryRequest.getReqId()));
|
Assert.notEmpty(args, () -> new EasyRetryServerException("日志上报的数据不能为空. ReqId:[{}]", retryRequest.getReqId()));
|
||||||
Map<Long, List<LogTaskDTO>> logTaskDTOMap = JsonUtil.parseList(JsonUtil.toJsonString(args[0]), LogTaskDTO.class).stream().collect(
|
Map<Long, List<LogTaskDTO>> logTaskDTOMap = JsonUtil.parseList(JsonUtil.toJsonString(args[0]), LogTaskDTO.class).stream().collect(Collectors.groupingBy(i -> i.getTaskId(), Collectors.toList()));
|
||||||
Collectors.groupingBy(i -> i.getTaskId(), Collectors.toList()));
|
|
||||||
|
|
||||||
List<JobLogMessage> jobLogMessageList = new ArrayList<>();
|
List<JobLogMessage> jobLogMessageList = new ArrayList<>();
|
||||||
for (List<LogTaskDTO> logTaskDTOList : logTaskDTOMap.values()) {
|
for (List<LogTaskDTO> logTaskDTOList : logTaskDTOMap.values()) {
|
||||||
|
|
||||||
LogTaskDTO logTaskDTO = logTaskDTOList.get(0);
|
JobLogMessage jobLogMessage = JobTaskConverter.INSTANCE.toJobLogMessage(logTaskDTOList.get(0));
|
||||||
JobLogMessage jobLogMessage = new JobLogMessage();
|
|
||||||
jobLogMessage.setCreateDt(LocalDateTime.now());
|
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.setLogNum(logTaskDTOList.size());
|
||||||
jobLogMessage.setRealTime(logTaskDTO.getRealTime());
|
List<Map<String, String>> messageMapList = logTaskDTOList.stream().map(taskDTO -> taskDTO.getFieldList()
|
||||||
|
|
||||||
jobLogMessage.setMessage(JsonUtil.toJsonString(logTaskDTOList.stream().map(taskDTO -> taskDTO.getFieldList()
|
|
||||||
.stream().filter(logTaskDTO_ -> !Objects.isNull(logTaskDTO_.getValue()))
|
.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);
|
jobLogMessageList.add(jobLogMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 批量新增日志数据
|
// 批量新增日志数据
|
||||||
jobLogMessageMapper.batchInsert(jobLogMessageList);
|
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()));
|
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