diff --git a/server.ts b/server.ts index efbfd3c97..0e6f787a6 100644 --- a/server.ts +++ b/server.ts @@ -195,4 +195,10 @@ async function startApplication () { logger.info('Server listening on %s:%d', hostname, port) logger.info('Web server: %s', CONFIG.WEBSERVER.URL) }) + + process.on('exit', () => { + JobQueue.Instance.terminate() + }) + + process.on('SIGINT', () => process.exit(0)) } diff --git a/server/lib/job-queue/job-queue.ts b/server/lib/job-queue/job-queue.ts index b018d0e8a..157c57ba9 100644 --- a/server/lib/job-queue/job-queue.ts +++ b/server/lib/job-queue/job-queue.ts @@ -83,6 +83,13 @@ class JobQueue { } } + terminate () { + for (const queueName of Object.keys(this.queues)) { + const queue = this.queues[queueName] + queue.close() + } + } + createJob (obj: CreateJobArgument) { const queue = this.queues[obj.type] if (queue === undefined) {