From 561dcd2a81a92f5299a946b65e483f8529d0cf80 Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Tue, 10 Feb 2026 11:02:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E4=BA=A7=E4=BF=AE=E6=94=B9-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduling/SchedulingProcessor.java | 28 ++++++++++++++++--- .../scheduling/feign/WorkOrderClient.java | 2 +- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/scheduling/SchedulingProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/scheduling/SchedulingProcessor.java index 334adac8..c8a523bc 100644 --- a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/scheduling/SchedulingProcessor.java +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/scheduling/SchedulingProcessor.java @@ -10,6 +10,7 @@ import tech.powerjob.worker.core.processor.TaskContext; import tech.powerjob.worker.core.processor.sdk.BasicProcessor; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; /** * 排产-排产定时任务 @@ -24,9 +25,28 @@ public class SchedulingProcessor implements BasicProcessor { @Override public ProcessResult process(TaskContext context) throws Exception { - log.info("排产定时任务开始"); - CompletableFuture runFuture = CompletableFuture.runAsync(()->client.scheduling()); - log.info("排产定时任务结束"); - return new ProcessResult(true); + log.info("排产定时任务开始,任务ID:{}", context.getTaskId()); // 增加任务ID便于排查 + try { + // 同步执行(或等待异步执行完成),避免任务提前返回 + CompletableFuture runFuture = CompletableFuture.runAsync(() -> { + try { + log.info("开始执行排产逻辑"); + client.scheduling(); + log.info("排产逻辑执行完成"); + } catch (Exception e) { + log.error("client.scheduling()执行异常", e); + throw new RuntimeException(e); // 抛出异常让外层感知 + } + }); + + // 等待异步任务完成(避免任务提前结束),可设置超时时间 + runFuture.get(60, TimeUnit.MINUTES); // 假设排产最多执行60分钟,根据实际调整 + + log.info("排产定时任务结束"); + return new ProcessResult(true); + } catch (Exception e) { + log.error("排产定时任务执行失败", e); + return new ProcessResult(false); // 明确返回失败,避免框架重试 + } } } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/feign/WorkOrderClient.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/feign/WorkOrderClient.java index 490f17e0..dfc4b659 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/feign/WorkOrderClient.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/feign/WorkOrderClient.java @@ -70,7 +70,7 @@ public class WorkOrderClient implements IWorkOrderClient { public R scheduling() { log.info("排产任务开始:"+ DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss")); workOrderService.scheduling(); - log.info("排查任务结束:"+ DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss")); + log.info("排产任务结束:"+ DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss")); return R.success(); }