主动任务重试

segment2.0
beeajax 2 years ago
parent d120068846
commit 9460764c55

@ -26,16 +26,16 @@ public class TBasicHttpCollectJob extends AbstractCollectJob<TBasicDTO> {
* xxl jobhandler
*/
@XxlJob("startAllTBasicHttpCollect")
public void startAllTBasicHttpCollect() {
super.startCollectAll(getJobParam());
public void startAllTBasicHttpCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncTBasicHttpCollect")
public void startIncTBasicHttpCollect() {
super.startCollectIncrement(getJobParam());
public void startIncTBasicHttpCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}

@ -28,20 +28,20 @@ public class TBasicViewCollectJob extends AbstractCollectJob<TBasicDTO> {
* xxl jobhandler
*/
@XxlJob("startAllTBasicViewCollect")
public void startAllTBasicViewCollect() {
super.startCollectAll(getJobParam());
public void startAllTBasicViewCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncTBasicViewCollect")
public void startIncTBasicViewCollect() {
super.startCollectIncrement(getJobParam());
public void startIncTBasicViewCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@Override
public void doHandle(List<TBasicDTO> results,String param) {
public void doHandle(List<TBasicDTO> results, String param) {
basicService.batchSaveBasics(results);
}

@ -26,16 +26,16 @@ public class TBasicWsCollectJob extends AbstractCollectJob<TBasicDTO> {
* xxl jobhandler
*/
@XxlJob("startAllTBasicWsCollect")
public void startAllTBasicWsCollect() {
super.startCollectAll(getJobParam());
public void startAllTBasicWsCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncTBasicWsCollect")
public void startIncTBasicWsCollect() {
super.startCollectIncrement(getJobParam());
public void startIncTBasicWsCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@Override

@ -27,16 +27,16 @@ public class DeptHttpCollectJob extends AbstractCollectJob<DeptDTO> {
* xxl jobhandler
*/
@XxlJob("startAllDeptHttpCollect")
public void startAllDeptHttpCollect() {
super.startCollectAll(getJobParam());
public void startAllDeptHttpCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncDeptHttpCollect")
public void startIncDeptHttpCollect() {
super.startCollectIncrement(getJobParam());
public void startIncDeptHttpCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@Override

@ -29,8 +29,8 @@ public class DeptViewCollectJob extends AbstractCollectJob<DeptDTO> {
* xxl jobhandler
*/
@XxlJob("startAllDeptViewCollect")
public void startAllDeptViewCollect() {
super.startCollectAll(getJobParam());
public void startAllDeptViewCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
@ -38,8 +38,8 @@ public class DeptViewCollectJob extends AbstractCollectJob<DeptDTO> {
*/
@XxlJob("startIncDeptViewCollect")
public void startIncDeptViewCollect() {
super.startCollectIncrement(getJobParam());
public void startIncDeptViewCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@Override

@ -29,7 +29,7 @@ public class DeptWsCollectJob extends AbstractCollectJob<DeptDTO> {
@XxlJob("startAllDeptWsCollect")
@TrackRetryListener("startAllDeptWsCollect")
public void startAllDeptWsCollect(String param) {
super.startCollectAll(getJobParam());
super.startCollectAll(getJobParam(param));
}
/**
@ -38,7 +38,7 @@ public class DeptWsCollectJob extends AbstractCollectJob<DeptDTO> {
@XxlJob("startIncDeptWsCollect")
@TrackRetryListener("startIncDeptWsCollect")
public void startIncDeptWsCollect(String param) {
super.startCollectIncrement(getJobParam());
super.startCollectIncrement(getJobParam(param));
}
@Override

@ -33,16 +33,16 @@ public class DefNoViewCollectionJob extends AbstractCollectJob<Map<String, Objec
* xxl jobhandler
*/
@XxlJob("startAllNoViewCollect")
public void startAllNoViewCollect() {
super.startCollectAll(getJobParam());
public void startAllNoViewCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncNoViewCollect")
public void startIncNoViewCollect() {
super.startCollectIncrement(getJobParam());
public void startIncNoViewCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@SuppressWarnings("unchecked")

@ -34,16 +34,16 @@ public class BlViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
* xxl jobhandler
*/
@XxlJob("startAllBlViewCollect")
public void startAllBlViewCollect() {
super.startCollectAll(getJobParam());
public void startAllBlViewCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncBlViewCollect")
public void startIncBlViewCollect() {
super.startCollectIncrement(getJobParam());
public void startIncBlViewCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@SuppressWarnings("unchecked")

@ -34,16 +34,16 @@ public class EcgViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
* xxl jobhandler
*/
@XxlJob("startAllEcgViewCollect")
public void startAllEcgViewCollect() {
super.startCollectAll(getJobParam());
public void startAllEcgViewCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncEcgViewCollect")
public void startIncEcgViewCollect() {
super.startCollectIncrement(getJobParam());
public void startIncEcgViewCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@SuppressWarnings("unchecked")

@ -34,16 +34,16 @@ public class EmrViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
* xxl jobhandler
*/
@XxlJob("startAllEmrViewCollect")
public void startAllEmrViewCollect() {
super.startCollectAll(getJobParam());
public void startAllEmrViewCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncEmrViewCollect")
public void startIncEmrViewCollect() {
super.startCollectIncrement(getJobParam());
public void startIncEmrViewCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@SuppressWarnings("unchecked")

@ -34,16 +34,16 @@ public class HlViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
* xxl jobhandler
*/
@XxlJob("startAllHlViewCollect")
public void startAllHlViewCollect() {
super.startCollectAll(getJobParam());
public void startAllHlViewCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncHlViewCollect")
public void startIncHlViewCollect() {
super.startCollectIncrement(getJobParam());
public void startIncHlViewCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@SuppressWarnings("unchecked")

@ -34,16 +34,16 @@ public class IssubmitViewCollectJob extends AbstractCollectJob<Map<String, Objec
* xxl jobhandler
*/
@XxlJob("startAllIssubmitViewCollect")
public void startAllIssubmitViewCollect() {
super.startCollectAll(getJobParam());
public void startAllIssubmitViewCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncIssubmitViewCollect")
public void startIncIssubmitViewCollect() {
super.startCollectIncrement(getJobParam());
public void startIncIssubmitViewCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@SuppressWarnings("unchecked")

@ -34,16 +34,16 @@ public class LisViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
* xxl jobhandler
*/
@XxlJob("startAllLisViewCollect")
public void startAllLisViewCollect() {
super.startCollectAll(getJobParam());
public void startAllLisViewCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncLisViewCollect")
public void startIncLisViewCollect() {
super.startCollectIncrement(getJobParam());
public void startIncLisViewCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@SuppressWarnings("unchecked")

@ -34,16 +34,16 @@ public class PacsViewCollectJob extends AbstractCollectJob<Map<String, Object>>
* xxl jobhandler
*/
@XxlJob("startAllPacsViewCollect")
public void startAllPacsViewCollect() {
super.startCollectAll(getJobParam());
public void startAllPacsViewCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncPacsViewCollect")
public void startIncPacsViewCollect() {
super.startCollectIncrement(getJobParam());
public void startIncPacsViewCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@SuppressWarnings("unchecked")

@ -34,16 +34,16 @@ public class VteViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
* xxl jobhandler
*/
@XxlJob("startAllVteViewCollect")
public void startAllVteViewCollect() {
super.startCollectAll(getJobParam());
public void startAllVteViewCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncVteViewCollect")
public void startIncVteViewCollect() {
super.startCollectIncrement(getJobParam());
public void startIncVteViewCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@SuppressWarnings("unchecked")

@ -34,16 +34,16 @@ public class ZzViewCollectJob extends AbstractCollectJob<Map<String, Object>> {
* xxl jobhandler
*/
@XxlJob("startAllZzViewCollect")
public void startAllZzViewCollect() {
super.startCollectAll(getJobParam());
public void startAllZzViewCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncZzViewCollect")
public void startIncZzViewCollect() {
super.startCollectIncrement(getJobParam());
public void startIncZzViewCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@SuppressWarnings("unchecked")

@ -26,16 +26,16 @@ public class UserHttpCollectJob extends AbstractCollectJob<UserDTO> {
* xxl jobhandler
*/
@XxlJob("startAllUserHttpCollect")
public void startAllUserHttpCollect() {
super.startCollectAll(getJobParam());
public void startAllUserHttpCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncUserHttpCollect")
public void startIncUserHttpCollect() {
super.startCollectIncrement(getJobParam());
public void startIncUserHttpCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@Override

@ -36,16 +36,16 @@ public class UserViewCollectJob extends AbstractCollectJob<UserDTO> {
* xxl jobhandler
*/
@XxlJob("startAllUserViewCollect")
public void startAllUserViewCollect() {
super.startCollectAll(getJobParam());
public void startAllUserViewCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncUserViewCollect")
public void startIncUserViewCollect() {
super.startCollectIncrement(getJobParam());
public void startIncUserViewCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@Override

@ -26,16 +26,16 @@ public class UserWsCollectJob extends AbstractCollectJob<UserDTO> {
* xxl jobhandler
*/
@XxlJob("startAllUserWsCollect")
public void startAllUserWsCollect() {
super.startCollectAll(getJobParam());
public void startAllUserWsCollect(String param) {
super.startCollectAll(getJobParam(param));
}
/**
* xxl jobhandler
*/
@XxlJob("startIncUserWsCollect")
public void startIncUserWsCollect() {
super.startCollectIncrement(getJobParam());
public void startIncUserWsCollect(String param) {
super.startCollectIncrement(getJobParam(param));
}
@Override

@ -1,18 +1,18 @@
package com.docus.server.collect.web.job;
import com.docus.core.util.ExceptionUtils;
import com.docus.core.util.Func;
import com.docus.infrastructure.redis.service.IdService;
import com.docus.server.entity.TaskConfig;
import com.docus.server.archivefile.service.ITaskConfigService;
import com.docus.server.collect.IJob;
import com.docus.server.collect.web.service.CollectService;
import com.docus.server.common.config.UserProperties;
import com.docus.server.entity.TaskConfig;
import com.docus.server.enums.StateEnum;
import com.docus.server.record.service.ITBasicService;
import com.docus.server.sys.service.IPowerDeptService;
import com.docus.server.sys.service.IPowerThirdLoginService;
import com.docus.server.sys.service.IPowerUserService;
import com.docus.server.util.ExceptionUtils;
import com.docus.server.util.PeriodTime;
import com.xxl.job.core.context.XxlJobHelper;
import lombok.extern.slf4j.Slf4j;
@ -51,12 +51,15 @@ public abstract class AbstractCollectJob<T> implements IJob<T> {
taskConfigService.updateAllPointerDate(taskConfigId, periodTime.getPeriodEndDate());
}
refreshTaskState(taskConfig);
} catch (Exception ex) {
log.error(ex.getMessage(), ex);
updateTaskState(ExceptionUtils.getExceptionMessage(ex), taskConfig);
refreshTaskState(taskConfig);
throw new RuntimeException(ex);
}
refreshTaskState(taskConfig);
}
@Override
@ -72,12 +75,15 @@ public abstract class AbstractCollectJob<T> implements IJob<T> {
taskConfigService.updateIncPointerDate(taskConfigId, periodTime.getPeriodEndDate());
}
refreshTaskState(taskConfig);
} catch (Exception ex) {
log.error(ex.getMessage(), ex);
updateTaskState(ExceptionUtils.getExceptionMessage(ex), taskConfig);
refreshTaskState(taskConfig);
throw new RuntimeException(ex);
}
refreshTaskState(taskConfig);
}
@ -132,7 +138,7 @@ public abstract class AbstractCollectJob<T> implements IJob<T> {
return taskConfigService.getTaskConfigById(taskConfigId);
}
protected String getJobParam() {
return XxlJobHelper.getJobParam();
protected String getJobParam(String param) {
return Func.isNotBlank(param) ? param : XxlJobHelper.getJobParam();
}
}

@ -28,7 +28,7 @@ public class TrackRetryJob {
List<TaskMessage> messages = messageService.findByState(StateEnum.FAIL);
for (TaskMessage message : messages) {
trackRetryService.doRetry(message);
trackRetryService.doRetryTaskMessage(message);
}
}

@ -1,24 +0,0 @@
package com.docus.server.collect.web.process;
import com.docus.log.context.TrackContext;
import com.docus.log.processor.AbstractProcessor;
import com.docus.server.archivefile.service.ITaskMessageService;
import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
/**
*
*
* @author linruifeng
*/
@Slf4j
public class RetryProcessor extends AbstractProcessor {
@Resource
private ITaskMessageService messageService;
@Override
public Object doProcess(TrackContext context) {
return null;
}
}

@ -1,5 +0,0 @@
package com.docus.server.record.controller;
public class Package {
}

@ -63,4 +63,14 @@ public class TaskConfigController implements TaskConfigApi {
return taskConfigService.deleteTaskConfig(ids);
}
@Override
public void searchRetry(SearchRequest searchRequest) throws Exception {
taskConfigService.searchRetry(searchRequest);
}
@Override
public void findRetry(List<Long> ids) throws Exception {
taskConfigService.findRetry(ids);
}
}

@ -0,0 +1,41 @@
package com.docus.server.archivefile.controller;
import com.docus.infrastructure.web.request.SearchRequest;
import com.docus.infrastructure.web.response.PageResult;
import com.docus.server.api.archivefile.TaskConfigRetryLogApi;
import com.docus.server.archivefile.service.ITaskConfigRetryLogService;
import com.docus.server.entity.TaskConfigRetryLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
/**
* Controller
* Generated on 2023-06-29
*/
@RestController
public class TaskConfigRetryLogController implements TaskConfigRetryLogApi {
@Autowired
private ITaskConfigRetryLogService taskConfigRetryLogService;
/**
*
*
* @param id Id
* @return
*/
@Override
public TaskConfigRetryLog find(String id) {
return taskConfigRetryLogService.findById(id);
}
/**
*
*
* @param searchRequest
* @return
*/
@Override
public PageResult<TaskConfigRetryLog> search(SearchRequest searchRequest) {
return taskConfigRetryLogService.search(searchRequest);
}
}

@ -50,7 +50,7 @@ public class TaskMessageController implements TaskMessageApi {
* @param searchRequest
*/
@Override
public void searchRetry(SearchRequest searchRequest) {
public void searchRetry(SearchRequest searchRequest) throws Exception {
taskMessageService.searchRetry(searchRequest);
}
@ -58,7 +58,7 @@ public class TaskMessageController implements TaskMessageApi {
*
*/
@Override
public void findRetry(List<Long> ids) {
public void findRetry(List<Long> ids) throws Exception {
taskMessageService.findRetry(ids);
}
}

@ -1,4 +0,0 @@
package com.docus.server.record.controller.param;
public class Package {
}

@ -1,4 +0,0 @@
package com.docus.server.record.controller.vo;
public class Package {
}

@ -0,0 +1,23 @@
package com.docus.server.archivefile.convert;
import com.docus.server.entity.TaskConfig;
import com.docus.server.entity.TaskConfigRetryLog;
import org.mapstruct.Mapper;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
@Mapper
public interface TaskConfigRetryLogConvert {
TaskConfigRetryLogConvert INSTANCE = Mappers.getMapper(TaskConfigRetryLogConvert.class);
@Mappings({})
TaskConfigRetryLog convert(TaskConfig taskConfig);
default TaskConfigRetryLog toConvertRetryLog(TaskConfig taskConfig, Long id) {
TaskConfigRetryLog taskConfigRetryLog = convert(taskConfig);
taskConfigRetryLog.setId(id);
taskConfigRetryLog.setMessageId(taskConfig.getId());
return taskConfigRetryLog;
}
}

@ -2,7 +2,6 @@ package com.docus.server.archivefile.convert;
import com.docus.server.entity.TaskMessage;
import com.docus.server.entity.TaskMessageRetryLog;
import com.docus.server.enums.StateEnum;
import org.mapstruct.Mapper;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
@ -21,9 +20,4 @@ public interface TaskMessageRetryLogConvert {
return taskMessageRetryLog;
}
default void afterThrowingProcess(String errorMsg, TaskMessageRetryLog taskMessageRetryLog) {
taskMessageRetryLog.setErrorMsg(errorMsg);
taskMessageRetryLog.setState(StateEnum.FAIL);
}
}

@ -0,0 +1,10 @@
package com.docus.server.archivefile.infrastructure.dao;
import com.docus.infrastructure.core.db.dao.IBaseDao;
import com.docus.infrastructure.web.request.SearchRequest;
import com.docus.infrastructure.web.response.PageResult;
import com.docus.server.entity.TaskConfigRetryLog;
public interface ITaskConfigRetryLogDao extends IBaseDao<TaskConfigRetryLog> {
PageResult<TaskConfigRetryLog> search(SearchRequest searchRequest);
}

@ -0,0 +1,47 @@
package com.docus.server.archivefile.infrastructure.dao.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.docus.core.util.Func;
import com.docus.infrastructure.core.db.dao.impl.BaseDaoImpl;
import com.docus.infrastructure.web.request.SearchRequest;
import com.docus.infrastructure.web.response.PageResult;
import com.docus.server.archivefile.infrastructure.dao.ITaskConfigRetryLogDao;
import com.docus.server.archivefile.infrastructure.mapper.TaskConfigRetryLogMapper;
import com.docus.server.entity.TaskConfigRetryLog;
import com.github.pagehelper.PageHelper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class TaskConfigRetryLogDaoImpl extends BaseDaoImpl<TaskConfigRetryLogMapper, TaskConfigRetryLog> implements ITaskConfigRetryLogDao {
@Override
public PageResult<TaskConfigRetryLog> search(SearchRequest searchRequest) {
PageHelper.startPage(searchRequest.getPageNum(), searchRequest.getPageSize());
LambdaQueryWrapper<TaskConfigRetryLog> query = Wrappers.lambdaQuery();
//时间范围默认按createTime
if (searchRequest.getBeginTime() != null) {
query.ge(TaskConfigRetryLog::getCreateTime, searchRequest.getBeginTime());
}
if (searchRequest.getEndTime() != null) {
query.le(TaskConfigRetryLog::getCreateTime, searchRequest.getEndTime());
}
if (searchRequest.getParams("state") != null) {
query.eq(TaskConfigRetryLog::getState, searchRequest.getParams("state"));
}
if (Func.isNotBlank(searchRequest.getKeyword())) {
query.like(TaskConfigRetryLog::getName, String.format("%s%s%s", "%", searchRequest.getKeyword(), "%"));
}
if (searchRequest.getParams("type") != null) {
query.eq(TaskConfigRetryLog::getType, searchRequest.getParams("type"));
}
//默认createTime倒序排序
query.orderByDesc(TaskConfigRetryLog::getCreateTime);
List<TaskConfigRetryLog> list = super.find(query);
return new PageResult<>(list);
}
}

@ -0,0 +1,14 @@
package com.docus.server.archivefile.infrastructure.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.docus.server.entity.TaskConfigRetryLog;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
* Generated on 2023-06-29
*/
@Mapper
public interface TaskConfigRetryLogMapper extends BaseMapper<TaskConfigRetryLog> {
}

@ -0,0 +1,96 @@
package com.docus.server.archivefile.process;
import com.docus.infrastructure.redis.service.IdService;
import com.docus.log.context.TrackContext;
import com.docus.log.processor.AbstractProcessor;
import com.docus.server.archivefile.convert.TaskConfigRetryLogConvert;
import com.docus.server.archivefile.convert.TaskMessageRetryLogConvert;
import com.docus.server.archivefile.infrastructure.dao.ITaskConfigDao;
import com.docus.server.archivefile.infrastructure.dao.ITaskConfigRetryLogDao;
import com.docus.server.archivefile.infrastructure.dao.ITaskMessageDao;
import com.docus.server.archivefile.infrastructure.dao.ITaskMessageRetryLogDao;
import com.docus.server.entity.TaskConfig;
import com.docus.server.entity.TaskConfigRetryLog;
import com.docus.server.entity.TaskMessage;
import com.docus.server.entity.TaskMessageRetryLog;
import com.docus.server.enums.StateEnum;
import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
import java.util.Date;
/**
*
*
* @author linruifeng
*/
@Slf4j
public class RetryProcessor extends AbstractProcessor {
public static final String EMPTY_STRING = "";
@Resource
private ITaskMessageRetryLogDao taskMessageRetryLogDao;
@Resource
private ITaskConfigRetryLogDao taskConfigRetryLogDao;
@Resource
private ITaskMessageDao taskMessageDao;
@Resource
private ITaskConfigDao taskConfigDao;
@Resource
private IdService idService;
@Override
public Object doProcess(TrackContext context) {
String group = context.getGroup();
if ("doRetryTaskMessage".equalsIgnoreCase(group)) {
doRetryTaskMessageLog(context);
} else if ("doRetryTaskConfig".equalsIgnoreCase(group)) {
doRetryTaskConfigLog(context);
}
return null;
}
private void doRetryTaskConfigLog(TrackContext context) {
boolean error = context.isError();
TaskConfig taskConfig = (TaskConfig) context.getArgs()[0];
TaskConfig taskConfigDO = taskConfigDao.findById(taskConfig.getId());
TaskConfigRetryLog taskConfigRetryLog = TaskConfigRetryLogConvert.INSTANCE.toConvertRetryLog(taskConfig, idService.getDateSeq());
if (error) {
taskConfigRetryLog.setLastErrorMsg(context.getExMessageResult());
taskConfigRetryLog.setState(StateEnum.FAIL);
taskConfigDO.setState(StateEnum.FAIL);
taskConfigDO.setUpdateTime(new Date());
} else {
taskConfigRetryLog.setLastErrorMsg(EMPTY_STRING);
taskConfigRetryLog.setState(StateEnum.OK);
taskConfigDO.setState(StateEnum.OK);
taskConfigDO.setUpdateTime(new Date());
}
taskConfigRetryLogDao.save(taskConfigRetryLog);
taskConfigDao.updateById(taskConfigDO);
}
private void doRetryTaskMessageLog(TrackContext context) {
boolean error = context.isError();
TaskMessage taskMessage = (TaskMessage) context.getArgs()[0];
TaskMessage taskMessageDO = taskMessageDao.findById(taskMessage.getId());
TaskMessageRetryLog taskMessageRetryLog = TaskMessageRetryLogConvert.INSTANCE.toConvertRetryLog(taskMessage, idService.getDateSeq());
if (error) {
taskMessageRetryLog.setErrorMsg(context.getExMessageResult());
taskMessageRetryLog.setState(StateEnum.FAIL);
taskMessageDO.setState(StateEnum.FAIL);
taskMessageDO.setUpdateTime(new Date());
} else {
taskMessageRetryLog.setErrorMsg(EMPTY_STRING);
taskMessageRetryLog.setState(StateEnum.OK);
taskMessageDO.setState(StateEnum.OK);
taskMessageDO.setUpdateTime(new Date());
}
taskMessageRetryLogDao.save(taskMessageRetryLog);
taskMessageDao.updateById(taskMessageDO);
}
}

@ -0,0 +1,11 @@
package com.docus.server.archivefile.service;
import com.docus.infrastructure.web.request.SearchRequest;
import com.docus.infrastructure.web.response.PageResult;
import com.docus.server.entity.TaskConfigRetryLog;
public interface ITaskConfigRetryLogService {
TaskConfigRetryLog findById(String id);
PageResult<TaskConfigRetryLog> search(SearchRequest searchRequest);
}

@ -20,4 +20,8 @@ public interface ITaskConfigService {
PageResult<TaskConfig> search(SearchRequest searchRequest);
int deleteTaskConfig(List<Long> ids);
void searchRetry(SearchRequest searchRequest) throws Exception;
void findRetry(List<Long> ids) throws Exception;
}

@ -21,7 +21,7 @@ public interface ITaskMessageService {
PageResult<TaskMessageVO> search(SearchRequest searchRequest);
void searchRetry(SearchRequest searchRequest);
void searchRetry(SearchRequest searchRequest) throws Exception;
void findRetry(List<Long> ids);
void findRetry(List<Long> ids) throws Exception;
}

@ -0,0 +1,26 @@
package com.docus.server.archivefile.service.impl;
import com.docus.infrastructure.web.request.SearchRequest;
import com.docus.infrastructure.web.response.PageResult;
import com.docus.server.archivefile.infrastructure.dao.ITaskConfigRetryLogDao;
import com.docus.server.archivefile.service.ITaskConfigRetryLogService;
import com.docus.server.entity.TaskConfigRetryLog;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class TaskConfigRetryLogServiceImpl implements ITaskConfigRetryLogService {
@Resource
private ITaskConfigRetryLogDao taskConfigRetryLogDao;
@Override
public TaskConfigRetryLog findById(String id) {
return taskConfigRetryLogDao.findById(id);
}
@Override
public PageResult<TaskConfigRetryLog> search(SearchRequest searchRequest) {
return taskConfigRetryLogDao.search(searchRequest);
}
}

@ -9,6 +9,7 @@ import com.docus.server.archivefile.service.ITaskConfigService;
import com.docus.server.entity.TaskConfig;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.Date;
@ -20,6 +21,8 @@ public class TaskConfigServiceImpl implements ITaskConfigService {
private ITaskConfigDao taskConfigDao;
@Resource
private IdService idService;
@Resource
private TrackRetryService trackRetryService;
@Transactional(rollbackFor = Exception.class)
@Override
@ -62,4 +65,30 @@ public class TaskConfigServiceImpl implements ITaskConfigService {
return taskConfigDao.deleteByIdList(ids);
}
public PageResult<TaskConfig> searchTaskMessage(SearchRequest request) {
return taskConfigDao.searchTaskConfig(request);
}
@Override
public void searchRetry(SearchRequest searchRequest) throws Exception {
PageResult<TaskConfig> result = searchTaskMessage(searchRequest);
actionRetry(result.getList());
}
@Override
public void findRetry(List<Long> ids) throws Exception {
List<TaskConfig> taskMessages = taskConfigDao.findByIds(ids);
actionRetry(taskMessages);
}
private void actionRetry(List<TaskConfig> list) throws Exception {
if (CollectionUtils.isEmpty(list)) {
return;
}
for (TaskConfig config : list) {
trackRetryService.doRetryTaskConfig(config);
}
}
}

@ -28,14 +28,14 @@ import java.util.Map;
@Slf4j
@Service
public class TaskMessageServiceImpl implements ITaskMessageService {
@Resource
private ITaskMessageDao taskMessageDao;
@Resource
private ITaskMessageRetryLogDao taskMessageRetryLogDao;
@Resource
private IdService idService;
@Resource
private TrackRetryService trackRetryService;
@Resource
private ITaskMessageDao taskMessageDao;
@Resource
private IdService idService;
/**
* ws xml
@ -100,25 +100,25 @@ public class TaskMessageServiceImpl implements ITaskMessageService {
@Override
public void searchRetry(SearchRequest searchRequest) {
public void searchRetry(SearchRequest searchRequest) throws Exception {
PageResult<TaskMessage> result = searchTaskMessage(searchRequest);
actionRetry(result.getList());
}
@Override
public void findRetry(List<Long> ids) {
List<TaskMessage> taskMessages = taskMessageDao.findBy("id", ids);
public void findRetry(List<Long> ids) throws Exception {
List<TaskMessage> taskMessages = taskMessageDao.findByIds(ids);
actionRetry(taskMessages);
}
private void actionRetry(List<TaskMessage> taskMessages) {
private void actionRetry(List<TaskMessage> taskMessages) throws Exception {
if (CollectionUtils.isEmpty(taskMessages)) {
return;
}
for (TaskMessage message : taskMessages) {
trackRetryService.doRetry(message);
trackRetryService.doRetryTaskMessage(message);
}
}

@ -1,54 +1,39 @@
package com.docus.server.archivefile.service.impl;
import com.docus.core.util.json.JSON;
import com.docus.infrastructure.redis.service.IdService;
import com.docus.log.annotation.TrackLogGroup;
import com.docus.log.executor.TrackRetrySpringExecutor;
import com.docus.log.handler.IJobHandler;
import com.docus.log.handler.impl.MethodJobHandler;
import com.docus.server.archivefile.convert.TaskMessageRetryLogConvert;
import com.docus.server.archivefile.infrastructure.dao.ITaskMessageRetryLogDao;
import com.docus.server.archivefile.process.RetryProcessor;
import com.docus.server.entity.TaskConfig;
import com.docus.server.entity.TaskMessage;
import com.docus.server.entity.TaskMessageRetryLog;
import com.docus.server.util.ExceptionUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.retry.annotation.Backoff;
import org.springframework.retry.annotation.Retryable;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* service
*/
@Service
@Slf4j
public class TrackRetryService {
@Resource
private ITaskMessageRetryLogDao taskMessageRetryLogDao;
@Resource
private IdService idService;
@TrackLogGroup(group = "doRetryTaskMessage", processor = RetryProcessor.class)
@Async("recordMessage")
@Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 2000L, multiplier = 1.5))
public void doRetry(TaskMessage message) {
TaskMessageRetryLogConvert retryLogConvert = TaskMessageRetryLogConvert.INSTANCE;
TaskMessageRetryLog taskMessageRetryLog = retryLogConvert.toConvertRetryLog(message, idService.getDateSeq());
try {
IJobHandler jobHandler = TrackRetrySpringExecutor.loadJobHandler(message.getRetryKey());
String name = ((MethodJobHandler) jobHandler).getMethod().getParameterTypes()[0].getName();
Object o = JSON.fromJSON(message.getJsonStr(), Class.forName(name));
public void doRetryTaskMessage(TaskMessage message) throws Exception {
IJobHandler jobHandler = TrackRetrySpringExecutor.loadJobHandler(message.getRetryKey());
String name = ((MethodJobHandler) jobHandler).getMethod().getParameterTypes()[0].getName();
Object o = JSON.fromJSON(message.getJsonStr(), Class.forName(name));
jobHandler.execute(o);
jobHandler.execute(o);
}
} catch (Exception e) {
log.error(e.getMessage(), e);
retryLogConvert.afterThrowingProcess(ExceptionUtils.getExceptionMessage(e), taskMessageRetryLog);
}
@TrackLogGroup(group = "doRetryTaskConfig", processor = RetryProcessor.class)
@Async("recordMessage")
public void doRetryTaskConfig(TaskConfig config) throws Exception {
IJobHandler jobHandler = TrackRetrySpringExecutor.loadJobHandler(config.getType());
taskMessageRetryLogDao.save(taskMessageRetryLog);
jobHandler.execute(String.valueOf(config.getId()));
}
}

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xmgps.tsms.auth.api.mapper.TaskConfigRetryLogMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap"
type="com.docus.server.entity.TaskConfigRetryLog">
<id column="id" property="id"/>
<result column="message_id" property="messageId"/>
<result column="name" property="name"/>
<result column="type" property="type"/>
<result column="start_time" property="startTime"/>
<result column="end_time" property="endTime"/>
<result column="all_pointer_time" property="allPointerTime"/>
<result column="page_size" property="pageSize"/>
<result column="spilt_period" property="spiltPeriod"/>
<result column="inc_pointer_time" property="incPointerTime"/>
<result column="param" property="param"/>
<result column="state" property="state"/>
<result column="last_error_msg" property="lastErrorMsg"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, message_id, name, type, start_time, end_time, all_pointer_time, page_size, spilt_period, inc_pointer_time, param, state, last_error_msg, create_time, update_time
</sql>
</mapper>

@ -64,4 +64,20 @@ public interface TaskConfigApi {
@ApiOperation("批量删除")
@DeleteMapping("/delete")
int delete(@RequestBody List<Long> ids);
/**
*
*
* @param searchRequest
*/
@ApiOperation("查询范围批量重试")
@PostMapping("/search/retry")
void searchRetry(@RequestBody SearchRequest searchRequest) throws Exception;
/**
*
*/
@ApiOperation("根据主键批量重试")
@PostMapping("/find/retry")
void findRetry(@RequestBody List<Long> ids) throws Exception;
}

@ -0,0 +1,36 @@
package com.docus.server.api.archivefile;
import com.docus.infrastructure.web.request.SearchRequest;
import com.docus.infrastructure.web.response.PageResult;
import com.docus.server.entity.TaskConfigRetryLog;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
/**
* API
* Generated on 2023-06-29
*/
@FeignClient(value = "tsms-auth-api", contextId = "tsms-auth-api.TaskConfigRetryLogApi")
@RequestMapping("/taskConfigRetryLog")
public interface TaskConfigRetryLogApi {
/**
*
*
* @param id id
* @return
*/
@GetMapping("/find/{id}")
TaskConfigRetryLog find(@PathVariable(value = "id") String id);
/**
*
*
* @param searchRequest
* @return
*/
@PostMapping("/search")
PageResult<TaskConfigRetryLog> search(@RequestBody SearchRequest searchRequest);
}

@ -51,12 +51,12 @@ public interface TaskMessageApi {
*/
@ApiOperation("查询范围批量重试")
@PostMapping("/search/retry")
void searchRetry(@RequestBody SearchRequest searchRequest);
void searchRetry(@RequestBody SearchRequest searchRequest) throws Exception;
/**
*
*/
@ApiOperation("根据主键批量重试")
@PostMapping("/find/retry")
void findRetry(@RequestBody List<Long> ids);
void findRetry(@RequestBody List<Long> ids) throws Exception;
}

@ -0,0 +1,118 @@
package com.docus.server.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.docus.server.enums.StateEnum;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author AutoGenerator
* @since 2023-06-29
*/
@Data
@TableName("task_config_retry_log")
public class TaskConfigRetryLog implements Serializable {
/**
* - bigint(20)
*/
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private Long id;
/**
* - bigint(20)
*/
@TableField("message_id")
private Long messageId;
/**
* - varchar(255)
*/
@TableField("name")
private String name;
/**
* deptuser.... - varchar(255)
*/
@TableField("type")
private String type;
/**
* - datetime
*/
@TableField("start_time")
private LocalDateTime startTime;
/**
* - datetime
*/
@TableField("end_time")
private LocalDateTime endTime;
/**
* - datetime
*/
@TableField("all_pointer_time")
private LocalDateTime allPointerTime;
/**
* - double
*/
@TableField("page_size")
private Double pageSize;
/**
* - varchar(255)
*/
@TableField("spilt_period")
private String spiltPeriod;
/**
* - datetime
*/
@TableField("inc_pointer_time")
private LocalDateTime incPointerTime;
/**
* - varchar(500)
*/
@TableField("param")
private String param;
/**
* 01: - int(11)
*/
@TableField("state")
private StateEnum state;
/**
* - varchar(5000)
*/
@TableField("last_error_msg")
private String lastErrorMsg;
/**
* - datetime
*/
@TableField("create_time")
private Date createTime;
/**
* - datetime
*/
@TableField("update_time")
private Date updateTime;
}

@ -1,14 +0,0 @@
package com.docus.server.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class TaskMessageExt extends TaskMessage {
@ApiModelProperty(value = "是否有重试详情日志")
private boolean haveRetryLog;
}

@ -1,18 +0,0 @@
package com.docus.server.util;
import java.io.PrintWriter;
import java.io.StringWriter;
public class ExceptionUtils {
public static String getExceptionMessage(Throwable ex) {
StringWriter stringWriter = new StringWriter();
ex.printStackTrace(new PrintWriter(stringWriter));
String errorMessage = stringWriter.toString();
if (null != errorMessage && errorMessage.length() > 1000) {
return errorMessage.substring(0, 1000);
}
return errorMessage;
}
}
Loading…
Cancel
Save