npm

Need private packages and team management tools?Check out npm Orgs. »

@bufferapp/shutdown-helper

0.2.0 • Public • Published

@bufferapp/shutdown-helper

NPM Version Build Status

Provides a basic helper that listens to the SIGTERM signal and will shutdown the given Express.js 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:

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) - 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 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:

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 })
})

Keywords

none

install

npm i @bufferapp/shutdown-helper

Downloadsweekly downloads

264

version

0.2.0

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
Report a vulnerability