Gestionar Jobs
Implementar queues en nuestro módulo
Una vez instalado, debemos crear las queues necesarias y crear tanto los jobs como los consumidores de cada queue.
Dentro del fichero src/app.queues.ts tendremos un objeto donde definiremos cada queue, asociaremos cada queue a cada módulo desde el cual se enviará o consumirá.
Dentro de la variable QueueStorage definiremos un identificativo único para cada queue, en este ejemplo COMMON_MAIL = 'mail'.
A continuación debemos importar en cada módulo que gestione queues, el módulo dinámico BullModule.registerQueue estableciendo el identificador common y el suyo propio.
De esta manera estaríamos preparados para empezar a lazar jobs y definir su consumidores.
¡Recuerda! todos los queues que desee usar en un módulo, deben de estar previamente registrados en la definición del módulo dentro de BullModule.registerQueue
Definir un consumer
Para procesar los jobs enviados a cada cola debemos implementar un consumer que procese la tarea esperada, para esto necesitaremos crear un consumer, y declararlo, este sería un ejemplo de consumer.
Posteriormente deberemos declarar el consumer en su módulo correspondiente, en el array de providers, como si un servicio se tratara.
Por convención los consumers los definimos en:
Definir un job
Para definir un job en una queue necesitaremos inyectar el QueueManagerJobService y la Queue donde publicar el job.
QueueManagerJobService se importa desde @api/queue-manager/job/shared/services/job.service y Queue desde bull.
Una vez importado usaremos el método add para lanzar el job a la queue correspondiente.
Los parámetros que pasamos es la queue donde vamos a definir:
La queue donde vamos a definir el job.
El payload que requiere el job.
String o array de string para crear unos tags que nos sirvan para localizar ese job en concreto.
Última actualización