?@nestjs/bull
是一个用于处理队列的Nest.js模块。它基于Bull库,提供了在Nest框架中使用队列的功能,这个模块要跟redis联合起来使用
npm install --save @nestjs/bull bull redis
项目结构:?
BullModule
@Module({ imports: [ BullModule.registerQueue({ // 这里 audio 名称,是 audioConsumer 这个文件里面的消费者定义的名称 name: 'audio', redis: { host: '端口号', port: 6379, db: 0, password: '', }, }), ], controllers: [AppController], providers: [AppService, AudioConsumer], }) export class AppModule {}
import { Process, Processor } from '@nestjs/bull';
import { Job } from 'bull';
@Processor('audio')
export class AudioConsumer {
@Process()
async transcode(job: Job) {
console.log('消费者进行代码');
console.log(job);
return {};
}
}
import { Injectable } from '@nestjs/common';
import { InjectQueue } from '@nestjs/bull';
import { Queue } from 'bull';
@Injectable()
export class AppService {
constructor(
// 这里 audio 名称,是 audioConsumer 这个文件里面的消费者定义的名称
@InjectQueue('audio') private readonly myQueue: Queue,
) {}
async addJobToQueue() {
console.log('进入方法');
const job = await this.myQueue.add({
foo: 'bar',
});
console.log(job);
}
}