From 63b5f69059a3b13aceacbc71d06da29d6b7fd704 Mon Sep 17 00:00:00 2001 From: roggervalf Date: Mon, 21 Oct 2024 22:30:07 -0500 Subject: [PATCH] fix(connection): do not allow to set blockingConnection option --- src/classes/queue-base.ts | 5 ++++- src/classes/queue-events.ts | 2 +- src/classes/queue.ts | 1 - src/interfaces/queue-options.ts | 1 + tests/test_connection.ts | 8 ++++---- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/classes/queue-base.ts b/src/classes/queue-base.ts index 42f7bf1d31..2760a7b108 100644 --- a/src/classes/queue-base.ts +++ b/src/classes/queue-base.ts @@ -28,6 +28,7 @@ export class QueueBase extends EventEmitter implements MinimalQueue { closing: Promise | undefined; protected closed: boolean = false; + protected hasBlockingConnection: boolean = false; protected scripts: Scripts; protected connection: RedisConnection; public readonly qualifiedName: string; @@ -43,9 +44,11 @@ export class QueueBase extends EventEmitter implements MinimalQueue { public readonly name: string, public opts: QueueBaseOptions = { connection: {} }, Connection: typeof RedisConnection = RedisConnection, + hasBlockingConnection = false, ) { super(); + this.hasBlockingConnection = hasBlockingConnection; this.opts = { prefix: 'bull', ...opts, @@ -62,7 +65,7 @@ export class QueueBase extends EventEmitter implements MinimalQueue { this.connection = new Connection( opts.connection, isRedisInstance(opts.connection), - opts.blockingConnection, + hasBlockingConnection, opts.skipVersionCheck, ); diff --git a/src/classes/queue-events.ts b/src/classes/queue-events.ts index f3b9407fcb..ea875b8706 100644 --- a/src/classes/queue-events.ts +++ b/src/classes/queue-events.ts @@ -202,9 +202,9 @@ export class QueueEvents extends QueueBase { connection: isRedisInstance(connection) ? (connection).duplicate() : connection, - blockingConnection: true, }, Connection, + true, ); this.opts = Object.assign( diff --git a/src/classes/queue.ts b/src/classes/queue.ts index 71621658dc..bb1dae7ae5 100644 --- a/src/classes/queue.ts +++ b/src/classes/queue.ts @@ -113,7 +113,6 @@ export class Queue< super( name, { - blockingConnection: false, ...opts, }, Connection, diff --git a/src/interfaces/queue-options.ts b/src/interfaces/queue-options.ts index b3fc75c3dc..a1459059e5 100644 --- a/src/interfaces/queue-options.ts +++ b/src/interfaces/queue-options.ts @@ -19,6 +19,7 @@ export interface QueueBaseOptions { /** * Denotes commands should retry indefinitely. + * @deprecated */ blockingConnection?: boolean; diff --git a/tests/test_connection.ts b/tests/test_connection.ts index 56ad77d5ce..748bb0a7c0 100644 --- a/tests/test_connection.ts +++ b/tests/test_connection.ts @@ -149,11 +149,10 @@ describe('connection', () => { describe('non-blocking', () => { it('should not override any redis options', async () => { - connection = new IORedis(redisHost, { maxRetriesPerRequest: 20 }); + const connection2 = new IORedis(redisHost, { maxRetriesPerRequest: 20 }); - const queue = new QueueBase(queueName, { - connection, - blockingConnection: false, + const queue = new Queue(queueName, { + connection: connection2, }); const options = (await queue.client).options; @@ -161,6 +160,7 @@ describe('connection', () => { expect(options.maxRetriesPerRequest).to.be.equal(20); await queue.close(); + await connection2.quit(); }); });