/bull-queue-example

Managing Queues with Bull (https://github.com/OptimalBits/bull) in Node.js

Primary LanguageJavaScript

Queue with Bull in Node.js

This repository contains an example of pratical use of the Bull queue management system.

Getting Started

Prerequisites

This app is not Docker based, so you should install Node.js.

Node.js >= 10.x

Bull needs the Redis service to store and manage its jobs and messages. So, we can easily install Redis using Docker:

    docker run --name my_redis_container -d -p 6379:6379 -i -t redis:alpine

We're using nodemailer as a library to send mail messages. Nodemailer supports several types of SMTP transport, like Ethereal (for testing purposes). To receive the Ethereal access credentials, please follow the steps below:

  1. Access the Ethereal Website: (https://ethereal.email/);
  2. Click in "Create Ethereal Account";
  3. Add your email username and password to .env file:
EMAIL_USERNAME=<YOUR_EMAIL_USERNAME_HERE>
EMAIL_PASSWORD=<YOUR_PASSWORD_HERE>
  1. Access this link (https://ethereal.email/messages) to open your mailbox.

How to run

  1. Install the project dependencies using yarn.
    yarn install
  1. Run the provided example using
    node src/index.js

OR

    yarn start

Bonus

This examples comes with Arena installed, an interactive Web GUI for Bee Queue and Bull. With Arena we can view the queues, start/stop jobs, perform job retry, and more. Run Arena server using:

    yarn run-arena

Further improvements