bullmq
v5.33.1
Dragonfly é um novo substituto imediato do Redis™ que é totalmente compatível com BullMQ e traz algumas vantagens importantes sobre o Redis™, como melhor desempenho massivo ao utilizar todos os núcleos de CPU disponíveis e estruturas de dados mais rápidas e eficientes em termos de memória. Leia mais aqui sobre como usá-lo com BullMQ. |
Algumas organizações notáveis que usam BullMQ:
Instalar:
$ yarn add bullmq
Adicione trabalhos à fila:
import { Queue } from 'bullmq';const queue = new Queue('Paint');queue.add('cars', { color: 'blue' });
Processe os trabalhos em seus trabalhadores:
importar {Trabalhador} de 'bullmq';const trabalhador = new Trabalhador('Paint', trabalho assíncrono => { if (job.name === 'carros') {await paintCar(job.data.color); }});
Ouça os trabalhos para conclusão:
import { QueueEvents } from 'bullmq';const queueEvents = new QueueEvents('Paint');queueEvents.on('completed', ({ jobId }) => { console.log('pintura concluída');});queueEvents.on( 'fracassado', ({ jobId, failedReason }: { jobId: string; failedReason: string }) => {console.error('error painting', failedReason); },);
Isso é apenas um arranhão na superfície, verifique todos os recursos e muito mais na documentação oficial
Como existem algumas soluções de fila de trabalhos, aqui está uma tabela comparando-as:
Recurso | BullMQ-Pro | TouroMQ | Touro | Kue | Abelha | Agenda |
---|---|---|---|---|---|---|
Back-end | redis | redis | redis | redis | redis | mongo |
Observáveis | ✓ | |||||
Limite de taxa de grupo | ✓ | |||||
Suporte de grupo | ✓ | |||||
Suporte a lotes | ✓ | |||||
Dependências pai/filho | ✓ | ✓ | ||||
Debate | ✓ | ✓ | ✓ | |||
Prioridades | ✓ | ✓ | ✓ | ✓ | ✓ | |
Simultaneidade | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Trabalhos atrasados | ✓ | ✓ | ✓ | ✓ | ✓ | |
Eventos globais | ✓ | ✓ | ✓ | ✓ | ||
Limitador de taxa | ✓ | ✓ | ✓ | |||
Pausar/Retomar | ✓ | ✓ | ✓ | ✓ | ||
Trabalhador em área restrita | ✓ | ✓ | ✓ | |||
Trabalhos repetíveis | ✓ | ✓ | ✓ | ✓ | ||
Operações atômicas | ✓ | ✓ | ✓ | ✓ | ||
Persistência | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
IU | ✓ | ✓ | ✓ | ✓ | ✓ | |
Otimizado para | Trabalhos / Mensagens | Trabalhos / Mensagens | Trabalhos / Mensagens | Empregos | Mensagens | Empregos |
Bifurque o repositório, faça algumas alterações, envie uma solicitação pull! Aqui está o documento contribuinte que contém mais detalhes.
Obrigado a todos os contribuidores que tornaram esta biblioteca possível, também uma menção especial a Leon van Kammen que gentilmente doou seu repositório npm bullmq.