judoscale-bull
v2.0.6
Published
Bull adapter for the Judoscale autoscaler
Downloads
23
Readme
Judoscale for Bull
Official Judoscale adapter package for autoscaling Bull job queues.
Set up your app for autoscaling
- Install the judoscale-bull package:
npm install judoscale-bull --save
- In your worker script, import and start the Judoscale reporter:
// ESM
import { Judoscale } from 'judoscale-bull'
// CommonJS
const { Judoscale } = require('judoscale-bull')
// Initialize Judoscale with optional configuration
const judoscale = new Judoscale({
redis_url: process.env.REDISCLOUD_URL, // defaults to process.env.REDIS_URL
})
// You can optionally pass a Redis config object or an ioredis instance
const judoscale = new Judoscale({
redis: redisConfig,
})
- If you want to scale your workers down to zero instances, you also need to install judoscale-bull in your web process so Judoscale knows when to scale them back up:
// ESM
import { Judoscale, middleware as judoscaleMiddleware } from 'judoscale-express'
import 'judoscale-bull'
// CommonJS
const { Judoscale, middleware: judoscaleMiddleware } = require('judoscale-express')
require('judoscale-bull')
// Judoscale will be initialized for both Bull and Express/Fastify
const judoscale = new Judoscale({
redis_url: process.env.REDISCLOUD_URL, // defaults to process.env.REDIS_URL
})
Troubleshooting
Once installed, you should see something like this in your development log:
[Judoscale] Reporter not started: JUDOSCALE_URL is not set
In your production app where you've installed Judoscale, you should see this in your logs:
[Judoscale] Reporter starting, will report every 10 seconds
If you don't see either of these, ensure "judoscale-bull" is in your Package.lock
file, and restart your app.
You can see more detailed (debug) logging by setting the environment variable JUDOSCALE_LOG_LEVEL=debug
on your deployed application. Here's how you would do that on Heroku:
heroku config:set JUDOSCALE_LOG_LEVEL=debug
Reach out to [email protected] if you run into any other problems.