Skip to content

Commit 1c71b24

Browse files
committed
Add Bull queue and board for listing module
- Integrate BullModule and BullBoardModule in QueueModule - Set up Redis connection for Bull queues - Add ListingProducer and ListingConsumer in ListingModule - Configure BullBoardModule for listing queue monitoring - Update LoggerMiddleware to skip logging for queue routes - Add new dependencies for Bull and Bull Board in package.json
1 parent 4cf018a commit 1c71b24

File tree

5 files changed

+86
-3
lines changed

5 files changed

+86
-3
lines changed

package.json

+3
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
"db:studio": "npx prisma studio"
3030
},
3131
"dependencies": {
32+
"@bull-board/api": "^5.21.4",
33+
"@bull-board/express": "^5.21.4",
34+
"@bull-board/nestjs": "^5.21.4",
3235
"@nestjs/bull": "^10.2.1",
3336
"@nestjs/cache-manager": "^2.2.2",
3437
"@nestjs/common": "^10.0.0",

pnpm-lock.yaml

+65
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/core/logger/logger.middleware.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ export class LoggerMiddleware implements NestMiddleware {
1212

1313
use(req: Request, res: Response, next: NextFunction) {
1414
const environment = this.configService.get(`environment`);
15-
if (environment === `test`) {
15+
const isQueueRoute = req.url.startsWith('/queues');
16+
if (environment === `test` || isQueueRoute) {
1617
return next();
1718
}
1819
const start = Date.now();

src/core/queue/queue.module.ts

+6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { Module } from '@nestjs/common';
22
import { BullModule } from '@nestjs/bull';
33
import { ConfigModule, ConfigService } from '@nestjs/config';
4+
import { BullBoardModule } from '@bull-board/nestjs';
5+
import { ExpressAdapter } from '@bull-board/express';
46

57
@Module({
68
imports: [
@@ -20,6 +22,10 @@ import { ConfigModule, ConfigService } from '@nestjs/config';
2022
},
2123
inject: [ConfigService],
2224
}),
25+
BullBoardModule.forRoot({
26+
route: `/queues`,
27+
adapter: ExpressAdapter,
28+
}),
2329
],
2430
})
2531
export class QueueModule {}

src/modules/listing/listing.module.ts

+10-2
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,20 @@ import { Module } from '@nestjs/common';
22
import { ListingService } from './listing.service';
33
import { ListingController } from './listing.controller';
44
import { BullModule } from '@nestjs/bull';
5-
import { ListingConsumer } from './queue/listing.consumer';
65
import { ListingProducer } from './queue/listing.producer';
6+
import { ListingConsumer } from './queue/listing.consumer';
77
import { LISTING_QUEUE } from '../../core/queue/queue.constants';
8+
import { BullBoardModule } from '@bull-board/nestjs';
9+
import { BullAdapter } from '@bull-board/api/bullAdapter';
810

911
@Module({
10-
imports: [BullModule.registerQueue({ name: LISTING_QUEUE })],
12+
imports: [
13+
BullModule.registerQueue({ name: LISTING_QUEUE }),
14+
BullBoardModule.forFeature({
15+
name: LISTING_QUEUE,
16+
adapter: BullAdapter,
17+
}),
18+
],
1119
controllers: [ListingController],
1220
providers: [ListingService, ListingProducer, ListingConsumer],
1321
})

0 commit comments

Comments
 (0)