NestJs
Source URL: https://docs.bullmq.io/bullmq-pro/nestjs
NestJs
Section titled “NestJs”There is a compatible module to be used in NestJs based on @nestjs/bullmq.
yarn add @taskforcesh/nestjs-bullmq-pro{% hint style=“info” %} BullMQ-Pro needs a token, as explained in the install section. {% endhint %}
Once the installation process is complete, we can import the BullModule into the root AppModule.
import { Module } from '@nestjs/common';import { BullModule } from '@taskforcesh/nestjs-bullmq-pro';
@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 Processor decorator:
import { Processor, WorkerHost, OnWorkerEvent,} from '@taskforcesh/nestjs-bullmq-pro';import { JobPro } from 'taskforcesh/bullmq-pro';
@Processor('queueName')class TestProcessor extends WorkerHost { async process(job: JobPro<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 {}Example
Section titled “Example”A working example is available here.