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();