small optimizations

This commit is contained in:
KingKDot
2026-07-12 23:14:29 -05:00
parent e54634d7ee
commit 1bc6364055
11 changed files with 273 additions and 37 deletions
+11 -2
View File
@@ -1,7 +1,16 @@
import { upsertClientRows, type ClientDbRow } from "./db";
import { metrics } from "./metrics";
export const CLIENT_DB_SYNC_INTERVAL_MS = Number(process.env.OVERLORD_CLIENT_DB_SYNC_MS || 5000);
function positiveNumberEnv(name: string, fallback: number): number {
const value = Number(process.env[name] || fallback);
return Number.isFinite(value) && value > 0 ? value : fallback;
}
export const CLIENT_DB_SYNC_INTERVAL_MS = positiveNumberEnv("OVERLORD_CLIENT_DB_SYNC_MS", 5000);
export const CLIENT_PRESENCE_SYNC_INTERVAL_MS = Math.max(
CLIENT_DB_SYNC_INTERVAL_MS,
positiveNumberEnv("OVERLORD_CLIENT_PRESENCE_SYNC_MS", 60_000),
);
export const CLIENT_DB_SYNC_BATCH_SIZE = Math.max(
1,
Number(process.env.OVERLORD_CLIENT_DB_SYNC_BATCH_SIZE || 500),
@@ -65,7 +74,7 @@ setInterval(flushQueuedClientDbUpdates, CLIENT_DB_SYNC_INTERVAL_MS);
export function shouldSyncClientToDb(clientId: string, now: number): boolean {
const last = lastClientDbSync.get(clientId) || 0;
if (now - last < CLIENT_DB_SYNC_INTERVAL_MS) return false;
if (now - last < CLIENT_PRESENCE_SYNC_INTERVAL_MS) return false;
lastClientDbSync.set(clientId, now);
return true;
}