diff --git a/server/src/config/services.worker.ts b/server/src/config/services.worker.ts index 93233cd37..e3996d09c 100644 --- a/server/src/config/services.worker.ts +++ b/server/src/config/services.worker.ts @@ -136,6 +136,7 @@ export const buildWorker = async (shared: SharedServices, envSettings: EnvConfig monitorsRepository, checksRepository, checkService, + bufferService, checkProducer, checkEvaluator, geoCheckPipeline, diff --git a/server/src/shutdown.ts b/server/src/shutdown.ts index 625547e85..bf77a77c9 100644 --- a/server/src/shutdown.ts +++ b/server/src/shutdown.ts @@ -24,6 +24,7 @@ export const initShutdownListener = (server: Server | null, services: ShutdownTa try { server?.close(); + await services.worker.drain(); await services.worker.shutdown(); await services.db.disconnect(); logger.info({ message: "Graceful shutdown complete" }); diff --git a/server/src/worker/worker.job-scheduler.ts b/server/src/worker/worker.job-scheduler.ts index 4e05e4c38..2f3f40950 100644 --- a/server/src/worker/worker.job-scheduler.ts +++ b/server/src/worker/worker.job-scheduler.ts @@ -154,6 +154,10 @@ export class JobScheduler implements IJobScheduler { return { success: true }; }; + drain = async () => { + this.stopped = true; + }; + shutdown = async () => { this.stopped = true; // Stop all timers