Files
OmniRoute/src/lib/initCloudSync.ts
Bob.Hou 217ac4c829 feat(warmup): proactive Claude warmup scheduler (#8848) (#9449)
Merge-train validated (tip 6ce4effef8). Vitest failures confirmed as base-red (#9679).
2026-08-07 20:53:21 -03:00

47 lines
1.5 KiB
TypeScript

import initializeCloudSync from "@/shared/services/initializeCloudSync";
import { startBudgetResetJob } from "@/lib/jobs/budgetResetJob";
import { startModelSyncScheduler } from "@/shared/services/modelSyncScheduler";
import { startWarmupScheduler } from "@/lib/warmupScheduler";
import { isAutomatedTestProcess } from "@/shared/utils/testProcess";
// Initialize runtime background sync services once per server process.
let initialized = false;
export function shouldSkipCloudSyncInitialization(
env: NodeJS.ProcessEnv = process.env,
argv: string[] = process.argv
): boolean {
if (env.NEXT_PHASE === "phase-production-build") {
return true;
}
const raw = env.OMNIROUTE_DISABLE_BACKGROUND_SERVICES;
if (raw && new Set(["1", "true", "yes", "on"]).has(raw.trim().toLowerCase())) {
return true;
}
return isAutomatedTestProcess(argv, env) && env.OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS !== "1";
}
export async function ensureCloudSyncInitialized() {
if (shouldSkipCloudSyncInitialization()) {
return false;
}
if (!initialized) {
try {
const { initTokenHealthCheck } = await import("@/lib/tokenHealthCheck");
initTokenHealthCheck();
await initializeCloudSync();
startModelSyncScheduler();
startBudgetResetJob();
startWarmupScheduler();
initialized = true;
} catch (error) {
console.error("[ServerInit] Error initializing background sync services:", error);
}
}
return initialized;
}
export default ensureCloudSyncInitialized;