From 57186bf85d0335e7e63899c10377d4fe539369e2 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Fri, 13 May 2022 10:22:58 +0200 Subject: [PATCH] fix: Implement graceful shutdown for worker and queue scheduler --- packages/backend/src/queues/processor.ts | 6 +++++- packages/backend/src/workers/processor.ts | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/backend/src/queues/processor.ts b/packages/backend/src/queues/processor.ts index 14e60c1c..b9b13c37 100644 --- a/packages/backend/src/queues/processor.ts +++ b/packages/backend/src/queues/processor.ts @@ -10,7 +10,11 @@ const redisConnection = { }; const processorQueue = new Queue('processor', redisConnection); -new QueueScheduler('processor', redisConnection); +const queueScheduler = new QueueScheduler('processor', redisConnection); + +process.on('SIGTERM', async () => { + await queueScheduler.close(); +}); processorQueue.on('error', (err) => { if ((err as any).code === CONNECTION_REFUSED) { diff --git a/packages/backend/src/workers/processor.ts b/packages/backend/src/workers/processor.ts index 09c1dd95..27eac2a4 100644 --- a/packages/backend/src/workers/processor.ts +++ b/packages/backend/src/workers/processor.ts @@ -24,3 +24,7 @@ worker.on('failed', (job, err) => { `JOB ID: ${job.id} - FLOW ID: ${job.data.flowId} has failed with ${err.message}` ); }); + +process.on('SIGTERM', async () => { + await worker.close(); +});