File size: 995 Bytes
cd8bd0a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { cleanupReasoningCache } from "../../../open-sse/services/reasoningCache.ts";

const DEFAULT_INTERVAL_MS = 30 * 60 * 1000;

let timer: NodeJS.Timeout | null = null;

function getIntervalMs() {
  const raw = process.env.OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS;
  const parsed = raw ? Number(raw) : Number.NaN;
  return Number.isFinite(parsed) && parsed >= 60_000 ? parsed : DEFAULT_INTERVAL_MS;
}

export function startReasoningCacheCleanupJob() {
  if (timer) {
    return timer;
  }

  const run = () => {
    try {
      const deleted = cleanupReasoningCache();
      if (deleted > 0) {
        console.log(`[ReasoningCache] expired entries removed=${deleted}`);
      }
    } catch (error) {
      console.error("[ReasoningCache] Cleanup job failed:", error);
    }
  };

  run();
  timer = setInterval(run, getIntervalMs());
  timer.unref?.();
  return timer;
}

export function stopReasoningCacheCleanupJob() {
  if (timer) {
    clearInterval(timer);
    timer = null;
  }
}