Node.js / NestJS

Colas con Bull

Bull queues, processors, jobs, jobs diferidos, prioridades, retries, eventos

20 preguntas de entrevista·
Mid-Level
1

¿Qué es Bull en el contexto de NestJS?

Respuesta

Bull es una biblioteca de Node.js para gestionar colas (queues) persistentes basadas en Redis. Permite ejecutar tareas en segundo plano de forma asíncrona, gestionar prioridades, retries y jobs diferidos. NestJS proporciona un módulo @nestjs/bull que integra Bull de forma nativa en la arquitectura modular del framework, facilitando la creación de workers y la gestión de jobs pesados o de larga duración.

2

¿Cuál es el rol de un processor en Bull?

Respuesta

Un processor es una función que procesa los jobs de una queue. Cuando se añade un job a la queue, Bull llama automáticamente al processor correspondiente para ejecutar la lógica de negocio. El processor recibe el job como parámetro y puede acceder a los datos mediante job.data. Puede ser síncrono o asíncrono y debe retornar un valor o una Promise para señalar la finalización del job.

3

¿Cómo añadir un job a una queue Bull en NestJS?

Respuesta

Para añadir un job, hay que inyectar la queue mediante @InjectQueue('queueName') y luego usar el método add(). Este método recibe parámetros opcionales: un nombre para el job, los datos a procesar (payload) y opciones como delay, priority, attempts. El método retorna una Promise que contiene el job creado con su ID único, permitiendo rastrearlo o manipularlo posteriormente.

4

¿Cuál es la función de Redis en la arquitectura de Bull?

5

¿Cómo crear un delayed job en Bull?

+17 preguntas de entrevista

Domina Node.js / NestJS para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis