// controllers/monitorController.js const { createBullBoard } = require('@bull-board/api'); const { BullMQAdapter } = require('@bull-board/api/bullMQAdapter.js'); const { ExpressAdapter } = require('@bull-board/express'); const { Queue } = require('bullmq'); const { redisConnection } = require('../config/redis.js'); // 1) 모니터링할 큐 인스턴스화 const convertQueue = new Queue('convert-pdf', { connection: redisConnection }); const convertQueue2 = new Queue('pdf-thumb', { connection: redisConnection }); const convertQueue3 = new Queue('zip-folder', { connection: redisConnection }); const convertQueue4 = new Queue('post-process-video', { connection: redisConnection }); const convertQueue5 = new Queue('ai-summarize', { connection: redisConnection }); const convertQueue6 = new Queue('api-summarize', {connection: redisConnection}); // const convertQueue3 = new Queue('test-job', { connection: redisConnection }); // 2) ExpressAdapter 생성 및 기본 경로 설정 const serverAdapter = new ExpressAdapter(); serverAdapter.setBasePath('/admin/queues'); // 3) Bull-Board 생성 createBullBoard({ queues: [ new BullMQAdapter(convertQueue), new BullMQAdapter(convertQueue2), new BullMQAdapter(convertQueue3), new BullMQAdapter(convertQueue4), new BullMQAdapter(convertQueue5), new BullMQAdapter(convertQueue6), // new BullMQAdapter(convertQueue3), // 여기에 더 필요한 큐 어댑터를 추가할 수 있습니다. ], serverAdapter, }); // 4) 실제 대시보드를 처리하는 Router 추출 const bullBoardController = serverAdapter.getRouter(); module.exports = bullBoardController;