Skip to content

Instantly share code, notes, and snippets.

@soundkitchen
Created December 7, 2012 12:00
Show Gist options
  • Save soundkitchen/4232848 to your computer and use it in GitHub Desktop.
Save soundkitchen/4232848 to your computer and use it in GitHub Desktop.
prefork で別ポート待受な httpd を node.js で。
#
#
#
cluster = require('cluster')
http = require('http')
NUM_CPU = require('os').cpus().length
if cluster.isMaster
for i in [0...NUM_CPU]
cluster.fork(port: 8000+i)
cluster.on('exit', (worker, code, signal)->
console.log "worker-#{worker.process.pid}: exit"
)
else
port = process.env.port
http.createServer((req, res)->
res.writeHead(200, {
'Content-Type': 'text/plain; charset=utf-8'
})
res.end('hello world!')
).listen(port)
console.log "Starting server: #{port}"
process.on("SIGHUP", ()->
for key, worker of cluster.workers
worker.destroy()
for i in [0...NUM_CPU]
cluster.fork(port: 8000+i)
)
for sig in ['SIGQUIT', 'SIGINT', 'SIGTERM']
process.on(sig, ()->
for key, worker of cluster.workers
worker.destroy()
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment