nest框架的bull队列的基本使用
2024-01-02 10:02:18
前言
?@nestjs/bull
是一个用于处理队列的Nest.js模块。它基于Bull库,提供了在Nest框架中使用队列的功能,这个模块要跟redis联合起来使用
1.下载队列模块:
npm install --save @nestjs/bull bull redis
项目结构:?
2.?在模块中导入BullModule
@Module({ imports: [ BullModule.registerQueue({ // 这里 audio 名称,是 audioConsumer 这个文件里面的消费者定义的名称 name: 'audio', redis: { host: '端口号', port: 6379, db: 0, password: '', }, }), ], controllers: [AppController], providers: [AppService, AudioConsumer], }) export class AppModule {}
3.定义消费者
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 {};
}
}
4.生产者生产消息
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);
}
}
5.调用方法
6.一个消费者有多个方法
文章来源:https://blog.csdn.net/qq_26112725/article/details/135187634
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!