- Fixed
repl()
bug: ensure server exists before closing it
- Fixed standalone read from stdin (ENOTSOCK) regression. Closes #153
- Fixed an
err.code
check
- Fixed
.listen()
return value. Closes #149 [nibblebot] - Fixed
cli()
hang regression. Closes #148
- Changed: nextTick() uncaughtException handler
- Changed
reload()
to reload workers only - Changed: use preventDefault instead of
exit()
incli()
- Fixed "listening" event by deferring "start"
- Removed local socket usage as it is being removed from node
- Added vhost example. Closes #144
- Fixed
cli()
plugin. Closes #145 [reported by alefnula]
- Fixed stand-alone support with a file path. Closes #141 [reported by SebastianEdwards]
- Fixed clobbering of "worker exception" [reported by fredericosilva]
- Fixed
logger()
/pidfiles()
errors when dir does not exist, now using - Removed remaining 2.x support. Closes #108 mkdirp. Closes #783
- Fixed typo in
reload()
plugin causing thesignal
option to fail. Closes #131
- Removed unnecessary use of client socket causing
bind()
errors
- Added test case for #125 [felixge]
- Expose child
Worker
instance.worker
- Fixed restart race-condition. Closes #125
- Added stand-alone restart test
- Added stand-alone shutdown test
- Added simple stand-alone test
- Removed 0.2.x compatibility
- Changed: sync unlink of server / client sockets
- Fixed stand-alone issue with not killing the parent master. Closes #565
- Added support for calling any master method from a worker [felixge]
- Changed internal IPC to use UDP. Closes #126
- Fixed: SIGKILL children on master uncaught exception
- Fix for json framing. Closes #109
- Added
{ color: false }
option todebug()
- Fixed; close socketpair fds when worker dies
- Fixed
Master#listen()
with env specific config. Closes #98
- Fixed IPC for workers without a server. Closes #91
- Fixed
close(fd)
issue for Master without a server. Closes #89
- Changed; cli commands will now signal orphaned children
- Changed; postpone spawning until "listening" this should fix our EINVAL issue
- Changed; exit > 0 when trying to use the
cli()
when cluster is not running - Changed;
cli()
will still operate on orphans
- Added support to run cluster without a server. Closes #72
- Renamed titles to "cluster" and "cluster worker". closes #82
- Added
lightRequests
option tostats()
- Added; expose utils, helpful for plugins
- Added; default both
Master#spawn()
andMaster#remove()
to 1
- Revert "Changed; demote user/group in master"
- Added
title
andworker title
settings. Closes #54 - Added
request complete
stats()
event - Changed; demote user/group in master
- Added support for changing watched file extensions [Eiríkur Nilsson]
- Fixed; reload() using extname() instead of indexOf() [reported by solsys]
- Changed; only caught uncaughtExceptions when no other listeners are present
- Added
connections
option tostats()
plugin. Reports connections and disconnections, displaying in the REPL. - Added
requests
option tostats()
plugin. Reports request statistics, displaying in the REPL. - Added support for plugins to work within workers. Closes #27
- Fixed json framing race-condition. Closes #64
- Fixed
user
/group
options. Closes #60 - Fixed; abort on many immediate worker deaths within boot
- Fixed
cli()
exit when working withreload()
(or anything else keeping the event loop active)
- Added cyclic restart timeouts. Closes #23
- Remove master SIGHUP as restart
- Added
worker removed
event - Added
spawn(-n, signal)
support defaulting to SIGQUIT - Added
spawn(-n)
support. Closes #46
- Added CLUSTER_WORKER_ env var with the workers id
- Fixed bug when using
cluster(filename)
, previously still requiring for master
- Added
cluster(filename)
support. Closes #45 This is highly recommended, view the API docs on the site for more info.
- Added "worker exception" event. Closes #41
- Added
listen()
host dns resolution. Closes #35 - Added
pidfiles()
helpermaster.pidof(name)
- Added;
reload()
ignoring node_modules and similar dirs. Closes #31 - Fixed master PPID reference. Closes #38
- Fixed restart SIGQUIT default
- Fixed; using
-g
for graceful shutdown instead of duplicate-s
. Closes #39
-
Added
Master#preventDefault
support to cleancli()
. Plugins can now tell master to "prevent its default behaviour", aka listening for connections. -
Fixed bug preventing consistent envs. Closes #37 [reported by sambarnes] This caused
require.paths
to be altered. -
Fixed; throw
pidfiles()
related errors, instead of ignoring
- Fixed
reload()
plugin; protect against cyclic restarts.
- Added SIGCHLD trap to notify master of killed worker. This means that master can now recover a child that is __KILL__ed.
- Removed
Master#workerKilled()
call from worker
- Added
Master#do()
- Added; maintaining worker count on SIGCHLD. Closes #28
- Added; defaulting
reload()
to the servers root dir - Changed;
reload()
filtering out non-js files. Closes #30 - Removed SIGHUP trap from worker
-
Added vhost example
-
Added restarts stat
-
Added
'all'
env support,in('all')
executing regardless of the environment. Useful whenlisten()
ing on the same port regardless. -
Changed;
working directory
setting defaulting to the script directory (POLS)
-
Added TCP echo server example
-
Added REPL
shutdown()
function -
Added REPL
stop()
function -
Added master spawning strategy On restart, master now spawns a new master to accept connections while the previous works (and master) finish and die off.
-
Added
Master#in()
for environment based usage. Closes #22 For example: cluster(server) .in('development') .use(cluster.debug()) .use(cluster.repl()) .listen(3000) .in('production') .use(cluster.logger()) .listen(80); -
Fixed some test race-conditions
-
Fixed event leak. Closes #18
- Fixed
stats()
/repl()
breakage when used with 0.2.x due to os mod. Closes #16 - Changed; close REPL connections on shutdown
- Added log dependency to package.json. Closes #14
- Fixed
process.setuid()
typo
- Initial commit