NestJs
Source URL: https://docs.bullmq.io/bullmq-pro/nestjs
NestJs
섹션 제목: “NestJs”@nestjs/bullmq를 기반으로 NestJs에서 사용할 수 있는 호환 모듈이 있습니다.
yarn add @taskforcesh/nestjs-bullmq-pro{% hint style=“info” %} BullMQ-Pro는 install 섹션에서 설명한 것처럼 토큰이 필요합니다. {% endhint %}
설치 과정이 완료되면 루트 AppModule에 BullModule을 import할 수 있습니다.
import { Module } from '@nestjs/common';import { BullModule } from '@taskforcesh/nestjs-bullmq-pro';
@Module({ imports: [ BullModule.forRoot({ connection: { host: 'localhost', port: 6379, }, }), ],})export class AppModule {}큐를 등록하려면 다음과 같이 BullModule.registerQueue() 동적 모듈을 import하세요.
BullModule.registerQueue({ name: 'queueName',});플로우 프로듀서를 등록하려면 다음과 같이 BullModule.registerFlowProducer() 동적 모듈을 import하세요.
BullModule.registerFlowProducer({ name: 'flowProducerName',});프로세서
섹션 제목: “프로세서”프로세서를 등록하려면 Processor 데코레이터를 사용해야 할 수 있습니다.
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 }}그런 다음 이를 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 {}작동하는 예제는 여기에서 확인할 수 있습니다.