fix(ops): BadgeDeviceStatusInitializer修复无租户上下文的启动阶段可以全量同步
Some checks failed
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled

This commit is contained in:
lzh
2026-01-29 16:53:27 +08:00
parent 44c7d7b9f5
commit 68e432ead7

View File

@@ -1,5 +1,6 @@
package com.viewsh.module.ops.environment.job;
import com.viewsh.framework.tenant.core.util.TenantUtils;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
@@ -29,10 +30,12 @@ public class BadgeDeviceStatusInitializer implements ApplicationRunner {
log.info("[初始化] 服务启动,开始同步工牌设备状态...");
try {
// 复用定时对账逻辑
BadgeDeviceStatusSyncJob.SyncResult result = syncJob.syncAllBadgeDeviceStatus();
log.info("[初始化] 工牌设备状态同步完成:处理 {} 台,修正 {} 台,耗时 {} ms",
result.syncCount(), result.correctedCount(), result.durationMs());
// 使用 executeIgnore 运行,确保在无租户上下文的启动阶段可以全量同步
TenantUtils.executeIgnore(() -> {
BadgeDeviceStatusSyncJob.SyncResult result = syncJob.syncAllBadgeDeviceStatus();
log.info("[初始化] 工牌设备状态同步完成:处理 {} 台,修正 {} 台,耗时 {} ms",
result.syncCount(), result.correctedCount(), result.durationMs());
});
} catch (Exception e) {
log.error("[初始化] 工牌设备状态同步失败", e);
}