Process events manager for toa.
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
}
})
npm install toa-pm
const pm = require('toa-pm')
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 omithandle
, 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
The MIT License (MIT)