Agik Setiawan - November 02, 2022

Add Bull Board for monitoring Queue Nest JS

Pada tutorial Queue sebelumnya kita sudah berhasil membuat Queue menggunakan Bull pada Nest JS, sekarang kita akan memonitor Queue menggunakan Bull Board. Bull board akan memudahkan kita dalam memonitor Queue yang ada di dalam nest JS sehingga kita bisa melihat status Queue yang sedang berjalan

 

Cara Install Bull Board


Pastikan kita sudah berhasil membuat Queue, atau lihat tutorial sebelumnya Cara membuat Queue Nest JS.


Install package

yarn add @bull-board/api
yarn add @bull-board/express


Edit file “main.ts” menjadi seperti dibawah ini

import { createBullBoard } from '@bull-board/api';
import { ExpressAdapter, } from '@bull-board/express';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { BullMQAdapter } from '@bull-board/api/bullMQAdapter';
import { Queue } from 'bull';
async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  const serverAdapter = new ExpressAdapter();
  serverAdapter.setBasePath('/bull-board');
  const aQueue = app.get<Queue>(
    `BullQueue_test-queue`
  )
  createBullBoard({
    queues: [
      new BullMQAdapter(aQueue)
    ],
    serverAdapter,
  })
  app.use(
    '/bull-board',
    serverAdapter.getRouter()
  );

  await app.listen(3000);
}
bootstrap();


Cek apakah Bull Board sudah berhasil diinstall atau belum dengan memasukan URL http://localhost:3000/bull-board





Pada gambar diatas kita bisa melihat status aktivitas Queue yang sedang berjalan


Untuk mengganti URL Bull Board kita bisa menggantinya di “main.ts”, misal saya ganti menjadi /bull-admin

import { createBullBoard } from '@bull-board/api';
import { ExpressAdapter, } from '@bull-board/express';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { BullMQAdapter } from '@bull-board/api/bullMQAdapter';
import { Queue } from 'bull';
async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  const serverAdapter = new ExpressAdapter();
  serverAdapter.setBasePath('/bull-admin');
  const aQueue = app.get<Queue>(
    `BullQueue_test-queue`
  )
  createBullBoard({
    queues: [
      new BullMQAdapter(aQueue)
    ],
    serverAdapter,
  })
  app.use(
    '/bull-admin',
    serverAdapter.getRouter()
  );

  await app.listen(3000);
}
bootstrap();


 

Repository


https://github.com/mister-coding/nestjs-queue-bull-redis

Share


Comments