Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including @meteorjs/ddp-graceful-shutdown with all npm packages installed. Try it out:

var ddpGracefulShutdown = require("@meteorjs/ddp-graceful-shutdown")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

@meteorjs/ddp-graceful-shutdown v0.9.2

Close DDP connections gradually on server shutdown

@meteorjs/ddp-graceful-shutdown

Build Status

This npm package is designed for use with Meteor apps running on platforms such as Galaxy which send SIGTERM signals and wait a grace period before killing processes.

To use on Galaxy:

import {DDPGracefulShutdown} from '@meteorjs/ddp-graceful-shutdown';
import {Meteor} from 'meteor/meteor';

new DDPGracefulShutdown({
  gracePeriodMillis: 1000 * process.env.METEOR_SIGTERM_GRACE_PERIOD_SECONDS,
  server: Meteor.server,
}).installSIGTERMHandler();

This registers a SIGTERM handler which will call ddpGracefulShutdown.closeConnections({log: true}). To trigger on a different signal, disable logging, or only trigger after some other clean up, just call that method yourself from an appropriate handler.

You should call this from top level code as soon as possible; this means that it will run before the Meteor webapp package starts listening. If it is created after connections already exist, they will not be tracked.

This should work on all recent Meteor releases --- the onConnection API it relies on was introduced in 0.7.0, and it is transpiled to ES5 on npm.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free