主动任务重试

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -28,7 +28,7 @@ public class TrackRetryJob {
List<TaskMessage> messages = messageService.findByState(StateEnum.FAIL); List<TaskMessage> messages = messageService.findByState(StateEnum.FAIL);
for (TaskMessage message : messages) { 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); 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 * @param searchRequest
*/ */
@Override @Override
public void searchRetry(SearchRequest searchRequest) { public void searchRetry(SearchRequest searchRequest) throws Exception {
taskMessageService.searchRetry(searchRequest); taskMessageService.searchRetry(searchRequest);
} }
@ -58,7 +58,7 @@ public class TaskMessageController implements TaskMessageApi {
* *
*/ */
@Override @Override
public void findRetry(List<Long> ids) { public void findRetry(List<Long> ids) throws Exception {
taskMessageService.findRetry(ids); 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.TaskMessage;
import com.docus.server.entity.TaskMessageRetryLog; import com.docus.server.entity.TaskMessageRetryLog;
import com.docus.server.enums.StateEnum;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mappings; import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
@ -21,9 +20,4 @@ public interface TaskMessageRetryLogConvert {
return taskMessageRetryLog; 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); PageResult<TaskConfig> search(SearchRequest searchRequest);
int deleteTaskConfig(List<Long> ids); 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); 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 com.docus.server.entity.TaskConfig;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date; import java.util.Date;
@ -20,6 +21,8 @@ public class TaskConfigServiceImpl implements ITaskConfigService {
private ITaskConfigDao taskConfigDao; private ITaskConfigDao taskConfigDao;
@Resource @Resource
private IdService idService; private IdService idService;
@Resource
private TrackRetryService trackRetryService;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
@ -62,4 +65,30 @@ public class TaskConfigServiceImpl implements ITaskConfigService {
return taskConfigDao.deleteByIdList(ids); 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 @Slf4j
@Service @Service
public class TaskMessageServiceImpl implements ITaskMessageService { public class TaskMessageServiceImpl implements ITaskMessageService {
@Resource
private ITaskMessageDao taskMessageDao;
@Resource @Resource
private ITaskMessageRetryLogDao taskMessageRetryLogDao; private ITaskMessageRetryLogDao taskMessageRetryLogDao;
@Resource @Resource
private IdService idService;
@Resource
private TrackRetryService trackRetryService; private TrackRetryService trackRetryService;
@Resource
private ITaskMessageDao taskMessageDao;
@Resource
private IdService idService;
/** /**
* ws xml * ws xml
@ -100,25 +100,25 @@ public class TaskMessageServiceImpl implements ITaskMessageService {
@Override @Override
public void searchRetry(SearchRequest searchRequest) { public void searchRetry(SearchRequest searchRequest) throws Exception {
PageResult<TaskMessage> result = searchTaskMessage(searchRequest); PageResult<TaskMessage> result = searchTaskMessage(searchRequest);
actionRetry(result.getList()); actionRetry(result.getList());
} }
@Override @Override
public void findRetry(List<Long> ids) { public void findRetry(List<Long> ids) throws Exception {
List<TaskMessage> taskMessages = taskMessageDao.findBy("id", ids); List<TaskMessage> taskMessages = taskMessageDao.findByIds(ids);
actionRetry(taskMessages); actionRetry(taskMessages);
} }
private void actionRetry(List<TaskMessage> taskMessages) { private void actionRetry(List<TaskMessage> taskMessages) throws Exception {
if (CollectionUtils.isEmpty(taskMessages)) { if (CollectionUtils.isEmpty(taskMessages)) {
return; return;
} }
for (TaskMessage message : taskMessages) { for (TaskMessage message : taskMessages) {
trackRetryService.doRetry(message); trackRetryService.doRetryTaskMessage(message);
} }
} }

@ -1,54 +1,39 @@
package com.docus.server.archivefile.service.impl; package com.docus.server.archivefile.service.impl;
import com.docus.core.util.json.JSON; 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.executor.TrackRetrySpringExecutor;
import com.docus.log.handler.IJobHandler; import com.docus.log.handler.IJobHandler;
import com.docus.log.handler.impl.MethodJobHandler; import com.docus.log.handler.impl.MethodJobHandler;
import com.docus.server.archivefile.convert.TaskMessageRetryLogConvert; import com.docus.server.archivefile.process.RetryProcessor;
import com.docus.server.archivefile.infrastructure.dao.ITaskMessageRetryLogDao; import com.docus.server.entity.TaskConfig;
import com.docus.server.entity.TaskMessage; import com.docus.server.entity.TaskMessage;
import com.docus.server.entity.TaskMessageRetryLog;
import com.docus.server.util.ExceptionUtils;
import lombok.extern.slf4j.Slf4j; 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.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/** /**
* service * service
*/ */
@Service @Service
@Slf4j @Slf4j
public class TrackRetryService { public class TrackRetryService {
@Resource
private ITaskMessageRetryLogDao taskMessageRetryLogDao;
@Resource
private IdService idService;
@TrackLogGroup(group = "doRetryTaskMessage", processor = RetryProcessor.class)
@Async("recordMessage") @Async("recordMessage")
@Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 2000L, multiplier = 1.5)) public void doRetryTaskMessage(TaskMessage message) throws Exception {
public void doRetry(TaskMessage message) {
TaskMessageRetryLogConvert retryLogConvert = TaskMessageRetryLogConvert.INSTANCE;
TaskMessageRetryLog taskMessageRetryLog = retryLogConvert.toConvertRetryLog(message, idService.getDateSeq());
try {
IJobHandler jobHandler = TrackRetrySpringExecutor.loadJobHandler(message.getRetryKey()); IJobHandler jobHandler = TrackRetrySpringExecutor.loadJobHandler(message.getRetryKey());
String name = ((MethodJobHandler) jobHandler).getMethod().getParameterTypes()[0].getName(); String name = ((MethodJobHandler) jobHandler).getMethod().getParameterTypes()[0].getName();
Object o = JSON.fromJSON(message.getJsonStr(), Class.forName(name)); 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);
} }
taskMessageRetryLogDao.save(taskMessageRetryLog); @TrackLogGroup(group = "doRetryTaskConfig", processor = RetryProcessor.class)
} @Async("recordMessage")
public void doRetryTaskConfig(TaskConfig config) throws Exception {
IJobHandler jobHandler = TrackRetrySpringExecutor.loadJobHandler(config.getType());
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("批量删除") @ApiOperation("批量删除")
@DeleteMapping("/delete") @DeleteMapping("/delete")
int delete(@RequestBody List<Long> ids); 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("查询范围批量重试") @ApiOperation("查询范围批量重试")
@PostMapping("/search/retry") @PostMapping("/search/retry")
void searchRetry(@RequestBody SearchRequest searchRequest); void searchRetry(@RequestBody SearchRequest searchRequest) throws Exception;
/** /**
* *
*/ */
@ApiOperation("根据主键批量重试") @ApiOperation("根据主键批量重试")
@PostMapping("/find/retry") @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