We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 4c91774 commit 15cdc86Copy full SHA for 15cdc86
1 file changed
src/worker.ts
@@ -139,10 +139,16 @@ export class Worker {
139
140
async *#fillPool(queues: string[]): AsyncGenerator<WorkerCycle, void, unknown> {
141
const concurrency = this.#config.worker?.concurrency || 1
142
+ const slotsAvailable = concurrency - this.#pool!.size
143
- while (this.#pool!.hasCapacity(concurrency)) {
144
- const result = await this.#acquireNextJob(queues)
145
- if (!result) break
+ if (slotsAvailable <= 0) return
+
146
+ const popPromises = Array.from({ length: slotsAvailable }, () => this.#acquireNextJob(queues))
147
148
+ const results = await Promise.all(popPromises)
149
150
+ for (const result of results) {
151
+ if (!result) continue
152
153
const { job, queue } = result
154
const promise = this.#execute(job, queue)
0 commit comments