From 67a34219ae9086c7c9987d34812163f4c5ea8991 Mon Sep 17 00:00:00 2001 From: byteblogs168 <598092184@qq.com> Date: Fri, 27 Oct 2023 09:03:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=202.4.0=201.=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=98=BB=E5=A1=9E=E7=AD=96=E7=95=A5=E4=B8=BA=E5=B9=B6=E8=A1=8C?= =?UTF-8?q?=E6=97=B6=E4=BA=A7=E7=94=9F=E5=A4=A7=E9=87=8F=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../easy/retry/server/job/task/dto/JobTaskPrepareDTO.java | 2 ++ .../job/task/support/dispatch/JobTaskPrepareActor.java | 6 ++++++ .../job/task/support/prepare/RunningJobPrepareHandler.java | 3 +++ 3 files changed, 11 insertions(+) diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/dto/JobTaskPrepareDTO.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/dto/JobTaskPrepareDTO.java index 635c26ea..fbb31d3a 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/dto/JobTaskPrepareDTO.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/dto/JobTaskPrepareDTO.java @@ -53,4 +53,6 @@ public class JobTaskPrepareDTO { */ private LocalDateTime executionAt; + private boolean onlyTimeoutCheck; + } diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/dispatch/JobTaskPrepareActor.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/dispatch/JobTaskPrepareActor.java index 141b4002..68675cd8 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/dispatch/JobTaskPrepareActor.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/dispatch/JobTaskPrepareActor.java @@ -60,15 +60,21 @@ public class JobTaskPrepareActor extends AbstractActor { TerminalJobPrepareHandler terminalJobPrepareHandler = SpringContext.getBeanByType(TerminalJobPrepareHandler.class); terminalJobPrepareHandler.handler(prepare); } else { + + boolean onlyTimeoutCheck = false; for (JobTaskBatch jobTaskBatch : notCompleteJobTaskBatchList) { prepare.setExecutionAt(jobTaskBatch.getExecutionAt()); prepare.setTaskBatchId(jobTaskBatch.getId()); + prepare.setOnlyTimeoutCheck(onlyTimeoutCheck); for (JobPrePareHandler prePareHandler : prePareHandlers) { if (prePareHandler.matches(jobTaskBatch.getTaskBatchStatus())) { prePareHandler.handler(prepare); break; } } + + // 当存在大量待处理任务时,除了第一个任务需要执行阻塞策略,其他任务只做任务检查 + onlyTimeoutCheck = true; } } } diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/prepare/RunningJobPrepareHandler.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/prepare/RunningJobPrepareHandler.java index 00f3ef77..3c1e7716 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/prepare/RunningJobPrepareHandler.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/prepare/RunningJobPrepareHandler.java @@ -55,6 +55,9 @@ public class RunningJobPrepareHandler extends AbstractJobPrePareHandler { } + if (prepare.isOnlyTimeoutCheck()) { + return; + } BlockStrategies.BlockStrategyContext blockStrategyContext = JobTaskConverter.INSTANCE.toBlockStrategyContext(prepare); blockStrategyContext.setOperationReason(jobOperationReasonEnum); BlockStrategy blockStrategyInterface = BlockStrategies.BlockStrategyEnum.getBlockStrategy(blockStrategy);