nestjs очереди
// https://github.com/nestjs/nest/tree/master/sample/26-queues/src
// src/app.module.ts
import { BullModule } from '@nestjs/bull';
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { AudioModule } from './audio/audio.module';
@Module({
imports: [
BullModule.forRoot({
redis: {
host: 'localhost',
port: 6379,
},
}),
AudioModule,
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
// src/audio/audio.controller.ts
import { InjectQueue } from '@nestjs/bull';
import { Controller, Post } from '@nestjs/common';
import { Queue } from 'bull';
@Controller('audio')
export class AudioController {
constructor(@InjectQueue('audio') private readonly audioQueue: Queue) {}
@Post('transcode')
async transcode() {
await this.audioQueue.add('transcode', {
file: 'audio.mp3',
});
}
}
// src/audio/audio.module.ts
import { BullModule } from '@nestjs/bull';
import { Module } from '@nestjs/common';
import { AudioController } from './audio.controller';
import { AudioProcessor } from './audio.processor';
@Module({
imports: [
BullModule.registerQueue({
name: 'audio',
}),
],
controllers: [AudioController],
providers: [AudioProcessor],
})
export class AudioModule {}
// src/audio/audio.module.ts
import { BullModule } from '@nestjs/bull';
import { Module } from '@nestjs/common';
import { AudioController } from './audio.controller';
import { AudioProcessor } from './audio.processor';
@Module({
imports: [
BullModule.registerQueue({
name: 'audio',
}),
],
controllers: [AudioController],
providers: [AudioProcessor],
})
export class AudioModule {}
Puzzled Puffin