콘텐츠로 이동

NestJs

Source URL: https://docs.bullmq.io/bullmq-pro/nestjs

@nestjs/bullmq를 기반으로 NestJs에서 사용할 수 있는 호환 모듈이 있습니다.

Terminal window
yarn add @taskforcesh/nestjs-bullmq-pro

{% hint style=“info” %} BullMQ-Pro는 install 섹션에서 설명한 것처럼 토큰이 필요합니다. {% endhint %}

설치 과정이 완료되면 루트 AppModuleBullModule을 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 {}

작동하는 예제는 여기에서 확인할 수 있습니다.