From 743c7aa8f979760bc04f7b8f55844020559038e1 Mon Sep 17 00:00:00 2001 From: Manuel Astudillo Date: Sun, 31 Mar 2024 16:42:57 +0200 Subject: [PATCH] feat(getters): add getWorkersCount --- src/classes/queue-getters.ts | 11 +++++++++++ tests/test_getters.ts | 15 +++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/classes/queue-getters.ts b/src/classes/queue-getters.ts index 928099b2be..2804d42d9e 100644 --- a/src/classes/queue-getters.ts +++ b/src/classes/queue-getters.ts @@ -470,6 +470,17 @@ export class QueueGetters< return this.baseGetClients(matcher); } + /** + * Returns the current count of workers for the queue. + * + * getWorkersCount(): Promise + * + */ + async getWorkersCount(): Promise { + const workers = await this.getWorkers(); + return workers.length; + } + /** * Get queue events list related to the queue. * Note: GCP does not support SETNAME, so this call will not work diff --git a/tests/test_getters.ts b/tests/test_getters.ts index 5523f55c64..4c22cfab96 100644 --- a/tests/test_getters.ts +++ b/tests/test_getters.ts @@ -85,6 +85,9 @@ describe('Jobs getters', function () { const nextWorkers = await queue.getWorkers(); expect(nextWorkers).to.have.length(2); + const nextWorkersCount = await queue.getWorkersCount(); + expect(nextWorkersCount).to.be.equal(2); + await worker.close(); await worker2.close(); }); @@ -105,6 +108,9 @@ describe('Jobs getters', function () { const workers = await queue.getWorkers(); expect(workers).to.have.length(1); + const workersCount = await queue.getWorkersCount(); + expect(workersCount).to.be.equal(1); + const worker2 = new Worker(queueName, async () => {}, { autorun: false, connection, @@ -120,6 +126,9 @@ describe('Jobs getters', function () { const nextWorkers = await queue.getWorkers(); expect(nextWorkers).to.have.length(2); + const nextWorkersCount = await queue.getWorkersCount(); + expect(nextWorkersCount).to.be.equal(2); + const rawnames = nextWorkers.map(nextWorker => { const workerValues = nextWorker.rawname.split(':'); return workerValues[workerValues.length - 1]; @@ -160,9 +169,15 @@ describe('Jobs getters', function () { const workers = await queue.getWorkers(); expect(workers).to.have.length(1); + const workersCount = await queue.getWorkersCount(); + expect(workersCount).to.be.equal(1); + const workers2 = await queue2.getWorkers(); expect(workers2).to.have.length(1); + const workersCount2 = await queue2.getWorkersCount(); + expect(workersCount2).to.be.equal(1); + await queue2.close(); await worker.close(); await worker2.close();