NestJs
Source URL: https://docs.bullmq.io/guide/nestjs
NestJs
Section titled “NestJs”There is a compatible module to be used in NestJs.
npm i @nestjs/bullmqOnce the installation process is complete, we can import the BullModule into the root AppModule.
import { Module } from '@nestjs/common';import { BullModule } from '@nestjs/bullmq';
@Module({ imports: [ BullModule.forRoot({ connection: { host: 'localhost', port: 6379, }, }), ],})export class AppModule {}To register a queue, import the BullModule.registerQueue() dynamic module, as follows:
BullModule.registerQueue({ name: 'queueName',});To register a flow producer, import the BullModule.registerFlowProducer() dynamic module, as follows:
BullModule.registerFlowProducer({ name: 'flowProducerName',});Processor
Section titled “Processor”To register a processor, you may need to use the Processor decorator:
import { Processor, WorkerHost, OnWorkerEvent } from '@nestjs/bullmq';import { Job } from 'bullmq';
@Processor('queueName')class TestProcessor extends WorkerHost { async process(job: Job<any, any, string>): Promise<any> { // do some stuff }
@OnWorkerEvent('completed') onCompleted() { // do some stuff }}And then register it as a provider:
@Module({ imports: [ BullModule.registerQueue({ name: 'queueName', connection: { host: '0.0.0.0', port: 6380, }, }), BullModule.registerFlowProducer({ name: 'flowProducerName', connection: { host: '0.0.0.0', port: 6380, }, }), ], providers: [TestProcessor],})export class AppModule {}