Middleware for express applications that checks if the process is taking too long to respond to requests. If so, it skips further requests until the server is able to properly handle them again, protecting the app from crashing during high load peaks.
npm install --save toobusy-middleware
NOTE: There may be some issues getting
toobusy to work in Windows environments. If
that's your case and you just want to get it working for development, you can
optionalDependency in the
package.json and the middleware
will act as a
In your application:
var express = ;var toobusy = ;var app = ;app// Put toobusy as high as possible in your middleware stack;var server = app;process;
The middleware accepts two parameters:
handler (optional): A function that will be called before sending any
headers, allowing you to customize how the request is handled. Use this
to call external services (bring more nodes up, notify someone, etc) or to
override the default response sent to the user.
options (optional): Middleware's settings:
maxLag: Maximum time (in ms) the server can be behind before the
process is considered to be overloaded. See [
toobusy's tunable parameters]
maxlag for more info.
message: Message to be displayed/returned when the server is too busy to
process the request. If it's an object or an array, the response will be
sent as JSON. Otherwise, it's sent as
status: HTTP status code to send when the server is too busy. Defaults
to status code
503 (Service Unavailable).
Uses default behavior.
Sending a JSON response instead of HTML:
Taking action during high load:
// Sends the default response after taking the required actionapp;
Overriding the default response:
Using both handler and options:
This project is licensed under the MIT license. See the
LICENSE file for