Sobre o projeto
BullMQ é uma biblioteca de fila de mensagens distribuída e processamento em lote de alto desempenho, baseada em Redis, projetada para Node.js, Python, .NET, Elixir, Rust e PHP. É construída para estabilidade e atomicidade sólidas, tornando-a adequada para ambientes de produção que exigem processamento confiável de tarefas em segundo plano.
A biblioteca fornece implementações nativas em várias linguagens, cada uma disponível como um pacote separado: `npm install bullmq` para Node.js/Bun, `pip install bullmq` para Python, `cargo add bullmq-official` para Rust, `{:bullmq, "~> x.x"}` para Elixir, `dotnet add package BullMQ` para .NET e um pacote PHP dedicado. Para outras plataformas, um BullMQ Proxy está disponível.
Os recursos principais incluem dependências de tarefas pai-filho via FlowProducer, que permite construir árvores de tarefas complexas com tarefas raiz, filho e neto em diferentes filas. A deduplicação suporta padrões de debouncing e throttling. As tarefas podem ser priorizadas, atrasadas, repetidas em horários agendados e processadas com concorrência configurável. A limitação de taxa está disponível no nível da fila, e as filas podem ser pausadas e retomadas. Operações atômicas garantem consistência de dados, e todas as tarefas são persistidas no Redis.
O BullMQ também suporta eventos globais para monitoramento do ciclo de vida das tarefas, como concluídas e falhas. Uma opção de worker em sandbox está disponível para execução isolada de tarefas. O projeto inclui uma tabela de comparação de recursos com outras soluções de fila de tarefas, como Bull, Kue, Bee e Agenda, destacando o conjunto mais amplo de recursos do BullMQ.
Um frontend oficial está disponível através do Taskforce.sh, fornecendo um painel profissional para inspecionar filas, pesquisar e repetir tarefas, promover tarefas atrasadas e visualizar métricas e estatísticas. O projeto é open-source com contribuições ativas da comunidade, e os patrocinadores incluem DragonflyDB, um substituto drop-in compatível com Redis otimizado para cargas de trabalho do BullMQ.
Organizações notáveis que usam o BullMQ incluem Microsoft (via Lage), Vendure, Datawrapper, NestJS, Langfuse, Curri, Novu, NocoDB e Infisical. O projeto segue semantic-release para versionamento e publicação automatizados.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.