diff --git a/lib/priorityQueue.js b/lib/priorityQueue.js index 294e409f6..83d7429a7 100644 --- a/lib/priorityQueue.js +++ b/lib/priorityQueue.js @@ -28,6 +28,7 @@ import Heap from './internal/Heap'; export default function(worker, concurrency) { // Start with a normal queue var q = queue(worker, concurrency); + var processingScheduled = false; q._tasks = new Heap(); @@ -55,7 +56,13 @@ export default function(worker, concurrency) { q._tasks.push(item); } - setImmediate(q.process); + if (!processingScheduled) { + processingScheduled = true; + setImmediate(() => { + processingScheduled = false; + q.process(); + }); + } }; // Remove unshift function