Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bufferapp/buffer-js-shutdown-helper
Shutdown your Express.js apps gracefully
https://github.com/bufferapp/buffer-js-shutdown-helper
expressjs shutdown-helper
Last synced: 2 months ago
JSON representation
Shutdown your Express.js apps gracefully
- Host: GitHub
- URL: https://github.com/bufferapp/buffer-js-shutdown-helper
- Owner: bufferapp
- License: mit
- Created: 2017-01-03T19:11:55.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-05-08T20:05:24.000Z (over 7 years ago)
- Last Synced: 2024-10-26T23:19:37.732Z (2 months ago)
- Topics: expressjs, shutdown-helper
- Language: JavaScript
- Homepage:
- Size: 7.81 KB
- Stars: 2
- Watchers: 34
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# @bufferapp/shutdown-helper
[![NPM Version](https://img.shields.io/npm/v/@bufferapp/shutdown-helper.svg)](https://www.npmjs.com/package/@bufferapp/shutdown-helper)
[![Build Status](https://travis-ci.org/bufferapp/node-shutdown-helper.svg?branch=master)](https://travis-ci.org/bufferapp/node-shutdown-helper)Provides a basic helper that listens to the `SIGTERM` signal and will shutdown the given
[Express.js](http://expressjs.com/) server after the given delay in seconds.## Install
```
npm install @bufferapp/shutdown-helper -SE
```## Usage
To use with your Express.js app, you'll have to use Node's `http` package to start your server.
Here is a full usage example:```js
const http = require('http')
const express = require('express')
const shutdownHelper = require('@bufferapp/shutdown-helper')
const createLogger = require('@bufferapp/logger')const shutdownDelay = 20 // seconds
const logger = createLogger({ name: 'Images-Worker' })
const app = express()
const server = http.createServer(app)server.listen(8080)
shutdownHelper.init({ server, shutdownDelay, logger })
```The `init` function takes one argument with the following options:
- `server` ([*http.Server*](https://nodejs.org/dist/latest-v6.x/docs/api/http.html#http_class_http_server)) -
An instance of a Node http server
- `shutdownDelay` (*Integer*) - The delay in seconds after which to shut down the http server. Default `20` seconds.
- `logger` (*@bufferapp/logger*) - (optional) - If passed in log messages to [`@bufferapp/logger`](https://github.com/bufferapp/node-logger) otherwise logged to `console`Elsewhere in your application, ideally in a health-check endpoint, you can use the `isShutingDown`
function to check if your application has received a `SIGTERM`:```js
const { isShutingDown } = require('@bufferapp/shutdown-helper')app.get('/health-check', (req, res) => {
const code = isShutingDown() ? 500 : 200
const status = code === 200 ? 'awesome' : 'shutting down'
res.status(code).json({ status })
})
```