diff --git a/cctp-atu/atu-engine/atu-script-engine/src/main/java/net/northking/cctp/se/exec/DefaultExecThread.java b/cctp-atu/atu-engine/atu-script-engine/src/main/java/net/northking/cctp/se/exec/DefaultExecThread.java index c73b683..458f172 100644 --- a/cctp-atu/atu-engine/atu-script-engine/src/main/java/net/northking/cctp/se/exec/DefaultExecThread.java +++ b/cctp-atu/atu-engine/atu-script-engine/src/main/java/net/northking/cctp/se/exec/DefaultExecThread.java @@ -857,6 +857,9 @@ public class DefaultExecThread implements AtuExecThread{ } } try { + if (task.getRetryStrategy() != null && AtuExecConstant.TASK_RETRY_STRATEGY_PACKAGE.equals(task.getRetryStrategy())) { + count = task.getCurrentRetryNum(); + } if(null==executeResult){ updateExecResult(result,AtuExecConstant.TASK_FAIL,"自动重试次数:"+count+";任务执行失败,无结果返回或未执行。"); }else{ diff --git a/cctp-atu/atu-engine/atu-script-engine/src/main/java/net/northking/cctp/se/plan/bean/AutoTask.java b/cctp-atu/atu-engine/atu-script-engine/src/main/java/net/northking/cctp/se/plan/bean/AutoTask.java index 3dd67b4..a83d351 100644 --- a/cctp-atu/atu-engine/atu-script-engine/src/main/java/net/northking/cctp/se/plan/bean/AutoTask.java +++ b/cctp-atu/atu-engine/atu-script-engine/src/main/java/net/northking/cctp/se/plan/bean/AutoTask.java @@ -40,6 +40,11 @@ public class AutoTask { */ private String retryStrategy; + /** + * 当前重试次数 + */ + private int currentRetryNum; + private String appId; private String projectId; @@ -227,4 +232,12 @@ public class AutoTask { public void setRetryStrategy(String retryStrategy) { this.retryStrategy = retryStrategy; } + + public int getCurrentRetryNum() { + return currentRetryNum; + } + + public void setCurrentRetryNum(int currentRetryNum) { + this.currentRetryNum = currentRetryNum; + } } diff --git a/cctp-atu/atu-execute-plan/src/main/java/net/northking/cctp/executePlan/api/service/AtuPlanTaskApiServiceImpl.java b/cctp-atu/atu-execute-plan/src/main/java/net/northking/cctp/executePlan/api/service/AtuPlanTaskApiServiceImpl.java index cabb561..5191077 100644 --- a/cctp-atu/atu-execute-plan/src/main/java/net/northking/cctp/executePlan/api/service/AtuPlanTaskApiServiceImpl.java +++ b/cctp-atu/atu-execute-plan/src/main/java/net/northking/cctp/executePlan/api/service/AtuPlanTaskApiServiceImpl.java @@ -1282,6 +1282,13 @@ public class AtuPlanTaskApiServiceImpl extends AbstractExcelService logger.error("消息队列名称或路由为空"); return; } + // 增加当前重试次数 + atuTaskExecDto.setCurrentRetryNum(0); + Object o = redisTemplate.opsForHash().get(RedisConstant.PLAN_BATCH_RETRY_COUNT, atuTaskExecDto.getBatchId()); + if (null != o) { + int count = Integer.parseInt(o.toString()); + atuTaskExecDto.setCurrentRetryNum(atuTaskExecDto.getFailRetryNum() - count); + } amqpAdmin.declareQueue(new Queue(queueName)); amqpTemplate.convertAndSend(queueName, JSONUtil.toJsonStr(atuTaskExecDto)); } diff --git a/cctp-atu/atu-execute-plan/src/main/java/net/northking/cctp/executePlan/dto/planTask/AtuTaskExecDto.java b/cctp-atu/atu-execute-plan/src/main/java/net/northking/cctp/executePlan/dto/planTask/AtuTaskExecDto.java index 9dcd239..9370a7b 100644 --- a/cctp-atu/atu-execute-plan/src/main/java/net/northking/cctp/executePlan/dto/planTask/AtuTaskExecDto.java +++ b/cctp-atu/atu-execute-plan/src/main/java/net/northking/cctp/executePlan/dto/planTask/AtuTaskExecDto.java @@ -81,6 +81,12 @@ public class AtuTaskExecDto implements Serializable { * 失败重试策略
*/ private String retryStrategy; + + /** + * 当前重试次数 + */ + private int currentRetryNum; + /** * 应用ID */ @@ -218,4 +224,12 @@ public class AtuTaskExecDto implements Serializable { public void setRetryStrategy(String retryStrategy) { this.retryStrategy = retryStrategy; } + + public int getCurrentRetryNum() { + return currentRetryNum; + } + + public void setCurrentRetryNum(int currentRetryNum) { + this.currentRetryNum = currentRetryNum; + } } diff --git a/cctp-atu/atu-execute-plan/src/main/java/net/northking/cctp/executePlan/job/PlanBatchTaskDataUpdateJob.java b/cctp-atu/atu-execute-plan/src/main/java/net/northking/cctp/executePlan/job/PlanBatchTaskDataUpdateJob.java index 65eb5ab..144fb59 100644 --- a/cctp-atu/atu-execute-plan/src/main/java/net/northking/cctp/executePlan/job/PlanBatchTaskDataUpdateJob.java +++ b/cctp-atu/atu-execute-plan/src/main/java/net/northking/cctp/executePlan/job/PlanBatchTaskDataUpdateJob.java @@ -293,8 +293,8 @@ public class PlanBatchTaskDataUpdateJob { dto.setTaskIdList(resultIds); logger.info("计划-批次【{}-{}】需要重试的任务数量:{}", planInfo.getPlanName(), planBatch.getBatch(), taskIds.size()); if (!taskIds.isEmpty()) { - planTaskApiService.taskRetry(dto); redisTemplate.opsForHash().put(RedisConstant.PLAN_BATCH_RETRY_COUNT, planBatch.getId(), String.valueOf(--count)); + planTaskApiService.taskRetry(dto); } else { redisTemplate.opsForHash().delete(RedisConstant.PLAN_BATCH_RETRY_COUNT, planBatch.getId()); // 没有失败的任务,清除redis信息,不需要重试 return false;