All Projects → felixmosh → Bull Board

felixmosh / Bull Board

Licence: mit
🎯 Queue background jobs inspector

Programming Languages

typescript
32286 projects

Labels

Projects that are alternatives of or similar to Bull Board

Wordops
Install and manage a high performance WordPress stack with a few keystrokes
Stars: ✭ 649 (-9.86%)
Mutual labels:  redis
Newsblur
NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.
Stars: ✭ 5,862 (+714.17%)
Mutual labels:  redis
Bifrost
Bifrost ---- 面向生产环境的 MySQL 同步到Redis,MongoDB,ClickHouse,MySQL等服务的异构中间件
Stars: ✭ 701 (-2.64%)
Mutual labels:  redis
Filterlists
🛡 The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.
Stars: ✭ 653 (-9.31%)
Mutual labels:  redis
Verk
A job processing system that just verks! 🧛‍
Stars: ✭ 666 (-7.5%)
Mutual labels:  redis
Imi
imi 是基于 Swoole 的 PHP 协程开发框架,它支持 Http、Http2、WebSocket、TCP、UDP、MQTT 等主流协议的服务开发,特别适合互联网微服务、即时通讯聊天im、物联网等场景!。QQ群:17916227
Stars: ✭ 680 (-5.56%)
Mutual labels:  redis
Graphql Ts Server Boilerplate
A GraphQL server boilerplate made with Typescript, PostgreSQL, and Redis
Stars: ✭ 643 (-10.69%)
Mutual labels:  redis
Iodine
iodine - HTTP / WebSockets Server for Ruby with Pub/Sub support
Stars: ✭ 720 (+0%)
Mutual labels:  redis
Abp Asp.net Boilerplate Project Cms
ABP module-zero +AdminLTE+Bootstrap Table+jQuery+Redis + sql server+quartz+hangfire权限管理系统
Stars: ✭ 677 (-5.97%)
Mutual labels:  redis
Arq
Fast job queuing and RPC in python with asyncio and redis.
Stars: ✭ 695 (-3.47%)
Mutual labels:  redis
Jboot
一个优雅的微服务框架,SpringCloud 之外的另一个选择,已经使用在用户量过亿的商业产品上,有超过1000家公司在使用Jboot做极速开发...
Stars: ✭ 655 (-9.03%)
Mutual labels:  redis
Ibooks
计算机图书,java,mysql,架构类,web
Stars: ✭ 666 (-7.5%)
Mutual labels:  redis
Zxw.framework.netcore
基于EF Core的Code First模式的DotNetCore快速开发框架,其中包括DBContext、IOC组件autofac和AspectCore.Injector、代码生成器(也支持DB First)、基于AspectCore的memcache和Redis缓存组件,以及基于ICanPay的支付库和一些日常用的方法和扩展,比如批量插入、更新、删除以及触发器支持,当然还有demo。欢迎提交各种建议、意见和pr~
Stars: ✭ 691 (-4.03%)
Mutual labels:  redis
Redlock Php
Redis distributed locks in PHP
Stars: ✭ 651 (-9.58%)
Mutual labels:  redis
Redis Search
Deprecated! High performance real-time prefix search, indexes store in Redis for Rails application
Stars: ✭ 713 (-0.97%)
Mutual labels:  redis
Node Celery
Celery client for Node.js
Stars: ✭ 648 (-10%)
Mutual labels:  redis
Oneblog
👽 OneBlog,一个简洁美观、功能强大并且自适应的Java博客
Stars: ✭ 678 (-5.83%)
Mutual labels:  redis
Rmq
Message queue system written in Go and backed by Redis
Stars: ✭ 722 (+0.28%)
Mutual labels:  redis
Fw Cloud Framework
基于springcloud全家桶开发分布式框架(支持oauth2认证授权、SSO登录、统一下单、微信公众号服务、Shardingdbc分库分表、常见服务监控、链路监控、异步日志、redis缓存等功能),实现基于Vue全家桶等前后端分离项目工程
Stars: ✭ 717 (-0.42%)
Mutual labels:  redis
Redis Replicator
Redis replication tool. support sync, psync, psync2. can parse rdb, aof, mixed rdb and aof files. support redis-6.2
Stars: ✭ 694 (-3.61%)
Mutual labels:  redis

bull-board 🎯

Bull Dashboard is a UI built on top of Bull to help you visualize your queues and their jobs. With this library you get a beautiful UI for visualizing what's happening with each job in your queues, their status and some actions that will enable you to get the jobs done.

npm downloads licence snyk

UI Fails

Notes

As this library provides only the visualization for your queues, keep in mind that:

  • You must have either Bull or BullMQ installed in your projects;
  • Aside the options to retry and clean jobs, this library is not responsible for processing the jobs, reporting progress or any other thing. This must be done in your application with your own logic;
  • If you want to understand the possibilities you have with the queues please refer to Bull's docs;
  • This library doesn't hijack Bull's way of working.

If you want to learn more about queues and Redis: https://redis.io/.

Starting

To add it to your project start by adding the library to your dependencies list:

yarn add bull-board

Or

npm i bull-board

Hello World

The first step is to let bull-board know the queues you have already set up, to do so we use the setQueues method.

const Queue = require('bull')
const QueueMQ = require('bullmq')
const { setQueues, BullMQAdapter, BullAdapter } = require('bull-board')

const someQueue = new Queue()
const someOtherQueue = new Queue()
const queueMQ = new QueueMQ()

setQueues([
  new BullAdapter(someQueue),
  new BullAdapter(someOtherQueue),
  new BullMQAdapter(queueMQ),
]);

You can then add UI to your middlewares (this can be set up using an admin endpoint with some authentication method):

const app = require('express')()
const { router } = require('bull-board')

app.use('/admin/queues', router)

// other configurations for your server

That's it! Now you can access the /admin/queues route and you will be able to monitor everything that is happening in your queues 😁

Queue options

  1. readOnlyMode (default: false) Makes the UI as read only, hides all queue & job related actions
     const Queue = require('bull')
     const QueueMQ = require('bullmq')
     const { setQueues, BullMQAdapter, BullAdapter } = require('bull-board')
     
     const someQueue = new Queue()
     const someOtherQueue = new Queue()
     const queueMQ = new QueueMQ()
     
     setQueues([
       new BullAdapter(someQueue, { readOnlyMode: true }), // only this queue will be in read only mode
       new BullAdapter(someOtherQueue),
       new BullMQAdapter(queueMQ, { readOnlyMode: true }),
     ]);
    

Hosting router on a sub path

If you host your express service on a different path than root (/) ie. https://<server_name>/<sub_path>/, then you can add the following code to provide the configuration to the bull-board router. In this example the sub path will be my-base-path.

const { router } = require('bull-board');

// ... express server configuration

let basePath = 'my-base-path';

app.use(
  '/queues',
  (req, res, next) => {
    req.proxyUrl = basePath + '/queues';
    next();
  },
  router);

You will then find the bull-board UI at the following address https://<server_name>/my-base-path/queues.

Contributing

First of all, thank you for being interested in helping out, your time is always appreciated in every way. 💯

Remember to read the Code of Conduct so you also help maintaining a good Open source community around this project!

Here's some tips:

  • Check the issues page for already opened issues (or maybe even closed ones) that might already address your question/bug/feature request.
  • When opening a bug report provide as much information as you can, some things might be useful for helping debugging and understading the problem
    • Node, Redis, Bull, bull-board versions
    • Sample code that reproduces the problem
    • Some of your environment details
    • Framework you're using (Express, Koa, Hapi, etc).
  • Feature requests are welcomed! Provide some details on why it would be helpful for you and others, explain how you're using bull-board and if possible even some screenshots if you are willing to mock something!

Developing

If you want to help us solving the issues, be it a bug, a feature or a question, you might need to fork and clone this project.

To fork a project means you're going to have your own version of it under your own GitHub profile, you do it by clicking the "Fork" button on the top of any project's page on GitHub.

Cloning a project means downloading it to your local machine, you do it in the command line:

git clone [email protected]:YOUR_GITHUB_USERNAME/bull-board.git

That will create a bull-board folder inside the directory you executed the command, so you need to navigate inside it:

cd bull-board

This project requires that you have yarn installed

Also make sure you are running Redis for this project (bull-board's example connects to Redis' default port 6379).

Now, to try it out locally you can run:

yarn && yarn start:dev

Acknowledgements ❤️

  • Juan for building the first version of this library

License

This project is licensed under the MIT License, so it means it's completely free to use and copy, but if you do fork this project with nice additions that we could have here, remember to send a PR 👍

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].