因为数据库连接问题导致的插入数据库异常

This commit is contained in:
2026-05-15 23:30:40 +08:00
parent 42b1555c80
commit d66daf375c
25 changed files with 1371 additions and 4 deletions

View File

@@ -0,0 +1,66 @@
package com.rj.scheduler;
import com.rj.config.AppConfig;
import com.rj.config.HxrAdminProperties;
import com.rj.service.HxrAdminOrderSelectService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.Clock;
import java.time.DayOfWeek;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
/**
* hxrd 后台订单列表定时拉取:每 50 分钟触发一次,仅工作日(周一至周五)且在每天 18:1023:59:59应用时区内真正执行。
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class LBAdminPullScheduler {
private static final long FIFTY_MINUTES_MS = 50L * 60L * 1000L;
private final AppConfig appConfig;
private final HxrAdminProperties hxrAdminProperties;
private final HxrAdminOrderSelectService hxrAdminOrderSelectService;
private final Clock clock;
@Scheduled(
fixedRate = FIFTY_MINUTES_MS,
initialDelayString = "${hxr.admin.pull-initial-delay-ms:0}")
public void pullAdminOrders() {
try {
if (!appConfig.getScheduler().isStart()) {
log.debug("全局调度未启用,跳过 未寄卖 订单拉取");
return;
}
if (!hxrAdminProperties.isEnabled()) {
log.debug("hxr.admin.enabled=false跳过订单拉取");
return;
}
ZoneId zone = ZoneId.of(appConfig.getTimezone());
ZonedDateTime nowZdt = ZonedDateTime.now(clock.withZone(zone));
DayOfWeek dow = nowZdt.getDayOfWeek();
if (dow == DayOfWeek.SATURDAY || dow == DayOfWeek.SUNDAY) {
log.debug("当前为周末 {},跳过 未寄卖 订单拉取", dow);
return;
}
LocalTime now = nowZdt.toLocalTime();
LocalTime windowStart = LocalTime.of(18, 10);
LocalTime windowEnd = LocalTime.of(23, 59, 59);
if (now.isBefore(windowStart) || now.isAfter(windowEnd)) {
log.debug("当前时刻 {} 不在窗口 {}{},跳过 未寄卖 订单拉取", now, windowStart, windowEnd);
return;
}
log.info("开始执行 未寄卖 订单拉取(工作日 18:1023:59:59 窗口内)");
hxrAdminOrderSelectService.fetchAndLogEachOrder();
} catch (Exception e) {
log.error("未寄卖 admin 订单拉取失败", e);
}
}
}