What is @bull-board/express?
@bull-board/express is a package that provides a user interface for managing Bull queues in an Express application. It allows developers to monitor and manage their job queues, view job details, retry failed jobs, and more.
What are @bull-board/express's main functionalities?
Setting up Bull Board with Express
This code sets up Bull Board with an Express application. It creates an Express server, initializes a Bull queue, and integrates Bull Board to provide a UI for managing the queue at the '/admin/queues' endpoint.
const express = require('express');
const { BullAdapter } = require('@bull-board/api/bullAdapter');
const { createBullBoard } = require('@bull-board/api');
const { ExpressAdapter } = require('@bull-board/express');
const Queue = require('bull');
const app = express();
const serverAdapter = new ExpressAdapter();
serverAdapter.setBasePath('/admin/queues');
const someQueue = new Queue('someQueueName');
createBullBoard({
queues: [new BullAdapter(someQueue)],
serverAdapter: serverAdapter,
});
app.use('/admin/queues', serverAdapter.getRouter());
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
Adding multiple queues
This code demonstrates how to add multiple Bull queues to Bull Board. It initializes two Bull queues and integrates them into the Bull Board UI, allowing management of both queues from the same interface.
const express = require('express');
const { BullAdapter } = require('@bull-board/api/bullAdapter');
const { createBullBoard } = require('@bull-board/api');
const { ExpressAdapter } = require('@bull-board/express');
const Queue = require('bull');
const app = express();
const serverAdapter = new ExpressAdapter();
serverAdapter.setBasePath('/admin/queues');
const firstQueue = new Queue('firstQueue');
const secondQueue = new Queue('secondQueue');
createBullBoard({
queues: [new BullAdapter(firstQueue), new BullAdapter(secondQueue)],
serverAdapter: serverAdapter,
});
app.use('/admin/queues', serverAdapter.getRouter());
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
Customizing Bull Board
This code shows how to customize Bull Board by dynamically adding a new queue. It uses the `addQueue` method to add another Bull queue to the existing Bull Board setup.
const express = require('express');
const { BullAdapter } = require('@bull-board/api/bullAdapter');
const { createBullBoard } = require('@bull-board/api');
const { ExpressAdapter } = require('@bull-board/express');
const Queue = require('bull');
const app = express();
const serverAdapter = new ExpressAdapter();
serverAdapter.setBasePath('/admin/queues');
const someQueue = new Queue('someQueueName');
const { addQueue, removeQueue, setQueues, replaceQueues } = createBullBoard({
queues: [new BullAdapter(someQueue)],
serverAdapter: serverAdapter,
});
// Example of adding a new queue dynamically
const anotherQueue = new Queue('anotherQueueName');
addQueue(new BullAdapter(anotherQueue));
app.use('/admin/queues', serverAdapter.getRouter());
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
Other packages similar to @bull-board/express
arena
Arena is another package that provides a web-based UI for managing Bull and Bee-Queue job queues. It offers similar functionalities to @bull-board/express, such as viewing job details, retrying failed jobs, and more. Arena supports both Bull and Bee-Queue, whereas @bull-board/express is focused on Bull.
bull-arena
Bull-Arena is a wrapper around Arena specifically for Bull queues. It provides a similar UI for managing Bull job queues, with features like job inspection, retrying, and more. It is similar to @bull-board/express but is built on top of the Arena package.