diff --git a/valhalla/jawn/src/index.ts b/valhalla/jawn/src/index.ts index 1a6546eec3..a832cbb29a 100644 --- a/valhalla/jawn/src/index.ts +++ b/valhalla/jawn/src/index.ts @@ -21,7 +21,7 @@ import * as publicSwaggerDoc from "./tsoa-build/public/swagger.json"; import { initLogs } from "./utils/injectLogs"; import { initSentry } from "./utils/injectSentry"; import { startConsumers } from "./workers/consumerInterface"; -import { ShutdownService } from "./lib/shared/ShutdownService"; +import { DelayedOperationService } from "./lib/shared/delayedOperationService"; export const ENVIRONMENT: "production" | "development" = (process.env .VERCEL_ENV ?? "development") as any; @@ -211,7 +211,7 @@ async function gracefulShutdown(signal: string) { server.close(async () => { console.log("HTTP server closed."); - await ShutdownService.getInstance().executeShutdown(); + await DelayedOperationService.getInstance().executeShutdown(); console.log("Graceful shutdown completed."); process.exit(0); diff --git a/valhalla/jawn/src/lib/shared/ShutdownService.ts b/valhalla/jawn/src/lib/shared/delayedOperationService.ts similarity index 83% rename from valhalla/jawn/src/lib/shared/ShutdownService.ts rename to valhalla/jawn/src/lib/shared/delayedOperationService.ts index fa5513a09f..24da391d0e 100644 --- a/valhalla/jawn/src/lib/shared/ShutdownService.ts +++ b/valhalla/jawn/src/lib/shared/delayedOperationService.ts @@ -1,15 +1,14 @@ -export class ShutdownService { - private static instance: ShutdownService; +export class DelayedOperationService { + private static instance: DelayedOperationService; private delayedOperations: Map Promise> = new Map(); private static readonly SHUTDOWN_TIMEOUT = 120000; // 120 seconds timeout - - public static getInstance(): ShutdownService { - if (!ShutdownService.instance) { - ShutdownService.instance = new ShutdownService(); + public static getInstance(): DelayedOperationService { + if (!DelayedOperationService.instance) { + DelayedOperationService.instance = new DelayedOperationService(); } - return ShutdownService.instance; + return DelayedOperationService.instance; } public addDelayedOperation( @@ -57,7 +56,7 @@ export class ShutdownService { new Promise((_, reject) => setTimeout( () => reject(new Error("Shutdown timed out")), - ShutdownService.SHUTDOWN_TIMEOUT + DelayedOperationService.SHUTDOWN_TIMEOUT ) ), ]); diff --git a/valhalla/jawn/src/managers/score/ScoreManager.ts b/valhalla/jawn/src/managers/score/ScoreManager.ts index c797f2d34e..ec134b2a54 100644 --- a/valhalla/jawn/src/managers/score/ScoreManager.ts +++ b/valhalla/jawn/src/managers/score/ScoreManager.ts @@ -5,7 +5,7 @@ import { dataDogClient } from "../../lib/clients/DataDogClient"; import { KafkaProducer } from "../../lib/clients/KafkaProducer"; import { HeliconeScoresMessage } from "../../lib/handlers/HandlerContext"; import * as Sentry from "@sentry/node"; -import { ShutdownService } from "../../lib/shared/ShutdownService"; +import { DelayedOperationService } from "../../lib/shared/delayedOperationService"; import { BaseManager } from "../BaseManager"; type Scores = Record; @@ -52,7 +52,7 @@ export class ScoreManager extends BaseManager { console.log("Kafka is not enabled. Using score manager"); // Schedule the delayed operation and register it with ShutdownService - const timeoutId = ShutdownService.getTimeoutId(() => { + const timeoutId = DelayedOperationService.getTimeoutId(() => { return this.handleScores( { batchId: "", @@ -65,7 +65,7 @@ export class ScoreManager extends BaseManager { }, delayMs); // Register the timeout and operation with ShutdownService - ShutdownService.getInstance().addDelayedOperation(timeoutId, () => + DelayedOperationService.getInstance().addDelayedOperation(timeoutId, () => this.handleScores( { batchId: "", @@ -92,7 +92,7 @@ export class ScoreManager extends BaseManager { }, delayMs); // Register the timeout and operation with ShutdownService - ShutdownService.getInstance().addDelayedOperation(timeoutId, () => + DelayedOperationService.getInstance().addDelayedOperation(timeoutId, () => this.kafkaProducer.sendScoresMessage( scoresMessage, "helicone-scores-prod"