From 2abdf57f8ee2908c2bf851b4d9a450d4e03e20dd Mon Sep 17 00:00:00 2001 From: byteblogs168 <598092184@qq.com> Date: Fri, 27 Oct 2023 09:24:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=202.4.0=201.=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=A6=86=E7=9B=96=E4=BB=BB=E5=8A=A1=E6=89=A7=E8=A1=8C=E9=A1=BA?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/support/prepare/RunningJobPrepareHandler.java | 1 + .../job/task/support/strategy/BlockStrategies.java | 9 +++++---- .../server/job/task/support/timer/JobTimerTask.java | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) 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 3c1e7716..1caa4ace 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 @@ -58,6 +58,7 @@ 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); diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/strategy/BlockStrategies.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/strategy/BlockStrategies.java index 63d120c4..8b1c41b8 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/strategy/BlockStrategies.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/strategy/BlockStrategies.java @@ -83,6 +83,11 @@ public class BlockStrategies { public void block(final BlockStrategyContext context) { log.warn("阻塞策略为覆盖. taskBatchId:[{}]", context.getTaskBatchId()); + // 重新生成任务 + JobTaskBatchGenerator jobTaskBatchGenerator = SpringContext.getBeanByType(JobTaskBatchGenerator.class); + JobTaskBatchGeneratorContext jobTaskBatchGeneratorContext = JobTaskConverter.INSTANCE.toJobTaskGeneratorContext(context); + jobTaskBatchGenerator.generateJobTaskBatch(jobTaskBatchGeneratorContext); + // 停止任务 JobTaskStopHandler instanceInterrupt = JobTaskStopFactory.getJobTaskStop(context.taskType); TaskStopJobContext stopJobContext = JobTaskConverter.INSTANCE.toStopJobContext(context); @@ -90,10 +95,6 @@ public class BlockStrategies { stopJobContext.setNeedUpdateTaskStatus(Boolean.TRUE); instanceInterrupt.stop(stopJobContext); - // 重新生成任务 - JobTaskBatchGenerator jobTaskBatchGenerator = SpringContext.getBeanByType(JobTaskBatchGenerator.class); - JobTaskBatchGeneratorContext jobTaskBatchGeneratorContext = JobTaskConverter.INSTANCE.toJobTaskGeneratorContext(context); - jobTaskBatchGenerator.generateJobTaskBatch(jobTaskBatchGeneratorContext); } } diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/timer/JobTimerTask.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/timer/JobTimerTask.java index a61ad195..3306d19c 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/timer/JobTimerTask.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/timer/JobTimerTask.java @@ -122,10 +122,10 @@ public class JobTimerTask implements TimerTask { Duration duration = Duration.between(preTriggerAt, nextTriggerAt); long milliseconds = duration.toMillis(); - log.info("常驻任务监控. 任务时间差:[{}] 取余:[{}]", milliseconds, System.currentTimeMillis() % 100); + log.info("常驻任务监控. 任务时间差:[{}] 取余:[{}]", milliseconds, System.currentTimeMillis() % 1000); job.setNextTriggerAt(nextTriggerAt); - JobTimerWheel.register(jobTimerTaskDTO.getTaskBatchId(), timerTask, milliseconds - System.currentTimeMillis() % 100, TimeUnit.MILLISECONDS); + JobTimerWheel.register(jobTimerTaskDTO.getTaskBatchId(), timerTask, milliseconds - System.currentTimeMillis() % 1000, TimeUnit.MILLISECONDS); ResidentTaskCache.refresh(jobTimerTaskDTO.getJobId(), nextTriggerAt); } }