From 0993b6313df174095252da1996a14653426ddc3c Mon Sep 17 00:00:00 2001 From: "jieying.li" Date: Tue, 12 Nov 2024 10:09:22 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E6=89=A7=E8=A1=8C=E8=AE=A1?= =?UTF-8?q?=E5=88=92=201.=E6=B7=BB=E5=8A=A0=E5=BD=93=E5=89=8D=E9=87=8D?= =?UTF-8?q?=E8=AF=95=E6=AC=A1=E6=95=B0=E5=AD=97=E6=AE=B5=EF=BC=8C=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E5=A4=B1=E8=B4=A5=E4=BF=A1=E6=81=AF=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E9=87=8D=E8=AF=95=E4=BA=86=E5=A4=9A=E5=B0=91?= =?UTF-8?q?=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../northking/cctp/se/exec/DefaultExecThread.java | 3 +++ .../net/northking/cctp/se/plan/bean/AutoTask.java | 13 +++++++++++++ .../api/service/AtuPlanTaskApiServiceImpl.java | 7 +++++++ .../executePlan/dto/planTask/AtuTaskExecDto.java | 14 ++++++++++++++ .../job/PlanBatchTaskDataUpdateJob.java | 2 +- 5 files changed, 38 insertions(+), 1 deletion(-) 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;