Adios
A module for notifying clustered workers for clean shutdowns.
This is accomplished by using domain sockets
– /var/run/adios.sock
by default – which has the added benefit of not sending messages over
application specific IPC channels. This means you don't have to filter out messages from adios
in any process.on('message')
listeners.
Note: On Windows, the local domain is implemented using a named pipe. The path must refer to an
entry in \\?\pipe\
or \\.\pipe\
. Therefore, you must initialize adios with a path in this space
if you are running on a Windows machine.
Usage
'use strict';const cluster = ;const http = ;const Adios = ; if clusterisMaster Adiosmaster ;else let server = http; Adioschild ;
API
-
Adios.master.init([path])
- The initialize function for adios masters. Sets up a server for IPC with clustered workers. Note: there can be only one.path
- (optional) The socket path to use. Defaults to /var/run/adios.sockconfig
- (optional) A configuration object for the master process. Contains:timeout
: time in milliseconds before a child will be force closed. Default: 10000, 10 seconds.
Returns a promise that resolves when the server is listening.
-
Adios.master.kill(pid)
- Method to kill a worker by process idpid
- The process id to kill
-
Adios.master.term(pid)
- Method to terminate a worker by process id, this will call the graceful shutdown defined by the worker.pid
- The process id to terminate
Returns a promise that resolves when the worker is terminated.
-
Adios.child.init(cleanCb[, path])
- The initialize function for adios children. Sets up a connection to the master. Note: there can be only one per process and it must be running on a child process.cleanCb
- The method to execute when the master is notifying of a shutdown. Must return a promise that resolves when work is done.path
- (optional) The socket path to use. Defaults to /var/run/adios.sock
Returns a promise that resolves when the connection with the master has been established.