trooba-toobusy-handler
Version:
Trooba based handler that provides more consistent too busy functionality based on hystrixjs and toobusy-js functionality
55 lines (46 loc) • 1.77 kB
Markdown
# trooba-toobusy-handler
The module provides trooba too-busy handler. The handler is based on [hystrix-too-busy module](https://github.com/trooba/hystrix-too-busy)
[](https://codecov.io/gh/trooba/trooba-toobusy-handler)
[](https://travis-ci.org/trooba/trooba-toobusy-handler) [](https://www.npmjs.com/package/trooba-toobusy-handler)
[](http://npm-stat.com/charts.html?package=trooba-toobusy-handler)
[](https://snyk.io/test/github/trooba/trooba-toobusy-handler)
### Install
```
$ npm install trooba-toobusy-handler -S
```
### Usage
```js
const toobusy = require('trooba-toobusy-handler');
toobusy.configure({
latencyThreshold: 70,
interval: 500,
default: {
circuitBreakerErrorThresholdPercentage: 50,
circuitBreakerRequestVolumeThreshold: 20,
circuitBreakerSleepWindowInMilliseconds: 5000
}
});
require('trooba')
// optional: command resolver used by toobusy
.use(pipe => {
pipe.on('request', request => {
pipe.context.command =
request.path === '/' ? 'homeCommand' : 'otherCommand';
});
})
// add toobusy
.use(toobusy)
// add http transport
.use('trooba-http-transport', {
protocol: 'http:',
hostname: 'www.google.com'
})
.build('client:default')
.get({
q: 'nike'
})
.set('some', 'header')
.end(function (err, response) {
console.log(err, response && response.body)
});
```