Example Usage
1import { ConcurrencyQueue } from "hbh-nodes";3const queue = new ConcurrencyQueue(2);5async function task(id, delay) {6 console.log(`Task ${id} started`);7 await new Promise(r => setTimeout(r, delay));8 console.log(`Task ${id} finished`);9 return id;10}12// Run multiple tasks concurrently but limited to 2 at a time13const results = await Promise.all([14 queue.run(() => task(1, 1000)),15 queue.run(() => task(2, 500)),16 queue.run(() => task(3, 700)),17 queue.run(() => task(4, 300))18]);20console.log(results); // [1, 2, 3, 4]