Background Jobs in Node.js with Redis
Redis-backed background worker example using OptimalBits/bull and throng.
Installing Local Dependencies
$ brew install redis
$ brew services start redis
Getting Started
npm install
npm start
- http://localhost:5000
Deploying
$ git clone [email protected]:heroku-examples/node-workers-example.git
$ cd node-workers-example
$ heroku create
$ heroku addons:create heroku-redis
$ git push heroku main
$ heroku ps:scale worker=1
$ heroku open
Application Overview
The application is comprised of two process:
web
- An Express server that serves the frontend assets, accepts new background jobs, and reports on the status us existing jobsworker
- A small node process that listens for and executes incoming jobs
Because these are separate processes, they can be scaled independently based on specific application needs. Read the Process Model article for a more in-depth understanding of Herokuโs process model.
The web
process serves the index.html
and client.js
files which implement a simplified example of a frontend interface that kicks off new jobs and checks in on them.