Backend · Resiliência

Fila com Limite de Concorrência

Processa milhares de itens com N tarefas por vez, resultados na ordem, timeout por tarefa e progresso. Importação e envio em massa sem estourar rate limit nem memória.

Concorrência · Batch · Promises · 8 testes automatizados · Licença MIT · Criado por FlowCore Soluções LTDA

Como instalar

  1. Funciona onde você já roda Node 18+, Cloudflare Workers, Deno, Bun, Vercel e Netlify Functions. Zero dependência: só fetch e Web Crypto, que já vêm no runtime.
  2. Crie src/lib/fila-concorrencia.ts Cole o código da aba Código.
  3. Use
    const resultados = await executarComLimite(clientes, (c, _i, signal) => sincronizarNoCrm(c, signal), {
      concorrencia: 5,
      timeoutMs: 10_000,
      aoProgredir: (p) => console.log(`${p.concluidas}/${p.total}`),
    });
  4. Rode o teste junto O arquivo de teste (aba Teste) cobre 8 cenários. Copie para src/lib/ ao lado e rode:
    npm install -D vitest
    npx vitest run src/lib

Código no GitHub · Biblioteca de códigos

Mais em Resiliência