排产修改-sjx

liweidong
sunjianxi 2 months ago
parent 42d82756b7
commit 561dcd2a81
  1. 28
      blade-ops/blade-job/src/main/java/org/springblade/job/processor/scheduling/SchedulingProcessor.java
  2. 2
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/feign/WorkOrderClient.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<Void> runFuture = CompletableFuture.runAsync(()->client.scheduling());
log.info("排产定时任务结束");
return new ProcessResult(true);
log.info("排产定时任务开始,任务ID:{}", context.getTaskId()); // 增加任务ID便于排查
try {
// 同步执行(或等待异步执行完成),避免任务提前返回
CompletableFuture<Void> 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); // 明确返回失败,避免框架重试
}
}
}

@ -70,7 +70,7 @@ public class WorkOrderClient implements IWorkOrderClient {
public R<Void> 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();
}

Loading…
Cancel
Save