دليل بسيط لإعداد Bull Board في مشروع NestJS لمراقبة طوابير BullMQ من لوحة تحكم ويب.
في هذا الدليل سأوضح كيفية إعداد Bull Board في مشروع NestJS.
Bull Board لوحة تحكم واجهة مستخدم لمراقبة طوابير BullMQ (المهام، الحالة، إعادة المحاولة، إلخ).
شاهد المثال العملي: https://github.com/habilm/bullmq-nestjs
ما هو Bull Board؟
يمنحك Bull Board واجهة ويب يمكنك فيها:
رؤية جميع المهام في الطابور
فحص المهام الفاشلة
إعادة محاولة المهام أو حذفها
مراقبة نشاط الطابور
الخطوة 1: تثبيت الحزم
نفّذ هذا الأمر:
npm install @bull-board/api @bull-board/express
الخطوة 2: إنشاء إعداد Bull Board
أنشئ ملفاً مثل bull-board.ts:
import { ExpressAdapter } from '@bull-board/express';
import { createBullBoard } from '@bull-board/api';
import { Queue } from 'bullmq';
import { BullMQAdapter } from '@bull-board/api/bullMQAdapter';
export function setupBullBoard(app: any, emailQueue: Queue) {
const serverAdapter = new ExpressAdapter();
serverAdapter.setBasePath('/admin/queues');
createBullBoard({
queues: [new BullMQAdapter(emailQueue)],
serverAdapter,
});
app.use('/admin/queues', serverAdapter.getRouter());
}
الخطوة 3: تحديث main.ts
الآن اربط Bull Board بتطبيق NestJS.
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { setupBullBoard } from './bull-board';
import { emailQueue } from './queue';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
setupBullBoard(app, emailQueue);
await app.listen(3000);
}
bootstrap();
الخطوة 4: تشغيل التطبيق
شغّل تطبيق NestJS:
npm run startالخطوة 5: فتح Bull Board
افتح المتصفح:
http://localhost:3000/admin/queuesسترى:
قائمة المهام
المهام المكتملة
المهام الفاشلة
تفاصيل الطابور
نصائح
يمكنك إضافة عدة طوابير:
queues: [
new BullMQAdapter(emailQueue),
new BullMQAdapter(paymentQueue),
]احمِ المسار (
/admin/queues) بالمصادقة (مهم للإنتاج)استخدم Redis منفصلاً لأحمال الإنتاج
اختياري: إضافة مصادقة أساسية (موصى به)
مثال باستخدام وسيط Express:
import * as basicAuth from 'express-basic-auth';
app.use(
'/admin/queues',
basicAuth({
users: { admin: 'password' },
challenge: true,
}),
);
الخلاصة
الآن أعددت Bull Board في تطبيق NestJS 🎉 يمكنك مراقبة الطوابير بسهولة وإدارة المهام دون مراجعة السجلات.


