Skip to content
This repository has been archived by the owner on Aug 17, 2023. It is now read-only.

toajs/toa-pm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

toa-pm

Process events manager for toa.

NPM version Build Status Downloads

Example

Demo 1, with defaultHandle:

const Toa = require('toa')
const pm = require('toa-pm')

const app = new Toa()
app.use(function() {
  this.body = 'Hello world!'
})

app.listen(3000)
pm(app)

Demo 2:

const Toa = require('toa')
const pm = require('toa-pm')

const app = new Toa()
app.use(function() {
  this.body = 'Hello world!'
})

app.listen(3000)

pm(app, function(message) {
  // the context is `app`
  if (message === 'shutdown') {
    // do some thing....
  } else {
    // ...
  }
})

Demo 3:

const Toa = require('toa')
const pm = require('toa-pm')

const app = new Toa()
app.use(function() {
  this.body = 'Hello world!'
})

app.listen(3000)

pm(app, {
  message: function(message) {
    // the context is `app`
    if (message === 'shutdown') {
      // do some thing....
    } else {
      // ...
    }
  },
  beforeExit: function() {
    // do some thing.... when process emit `beforeExit` event
  }
})

Installation

npm install toa-pm

API

const pm = require('toa-pm')

pm(app[, handle])

It will add handle to process's message event, or add one more event-handle to process. ** Use it after app.listen **

  • app: Toa application.

  • handle: {Function|Object}, if omit handle, the default handle will be used:

    function defaultHandle(message) {
      if (message === 'shutdown') {
        this.server.close(() => process.exit(0))
      }
    }

    Default handle accept a 'shutdown' message to stop from accepting new connections and keeps existing connections. The server is finally closed and exit gracefully when all connections are ended. For example: pm2 gracefulReload app

License

The MIT License (MIT)