JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 23174
  • Score
    100M100P100Q154811F
  • License ISC

Gracefully shutdown fastify

Package Exports

  • fastify-graceful-shutdown
  • fastify-graceful-shutdown/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fastify-graceful-shutdown) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

🏹 fastify-graceful-shutdown

styled with prettier NPM version

Shutdown Fastify graceful asynchronously. By default the fastify close hook is called when SIGINT or SIGTERM was triggered.

Features

  • Graceful and debug friendly shutdown
  • Flush the fastify logger before process exit to avoid losing logs
  • Handlers are called in parallel for faster shutdown

Install

npm install --save fastify-graceful-shutdown

Register plugin

fastify.register(require('fastify-graceful-shutdown'))

Usage

fastify.after(() => {
  fastify.gracefulShutdown(async (signal) => {
    fastify.log.info('Received signal to shutdown: %s', signal)
    await doSomethingAsync()
  })
})

Compatibility

Fastify >=5

Caveats

  • Don't register signal handlers otherwise except with this plugin.
  • Can't be used with a different logger other than Pino because we use the child logger feature to encapsulate the logs.
  • Use fastify onClose hook to release resources in your plugin.
  • The process will be exited after a certain timeout (Default 10 seconds) to protect against stuck process.