56 lines
985 B
JavaScript
56 lines
985 B
JavaScript
|
|
||
|
/**
|
||
|
* Module dependencies.
|
||
|
*/
|
||
|
|
||
|
var cluster = require('../')
|
||
|
, http = require('http');
|
||
|
|
||
|
require('./common');
|
||
|
|
||
|
var server = http.createServer(function(req, res){
|
||
|
res.writeHead(200);
|
||
|
res.end('Hello World');
|
||
|
});
|
||
|
|
||
|
// request options
|
||
|
|
||
|
var options = {
|
||
|
host: 'localhost'
|
||
|
, port: 3000
|
||
|
, headers: { Connection: 'keep-alive' }
|
||
|
};
|
||
|
|
||
|
// cluster
|
||
|
|
||
|
cluster = cluster(server)
|
||
|
.set('workers', 1)
|
||
|
.set('timeout', 1000)
|
||
|
.listen(3000);
|
||
|
|
||
|
cluster.on('listening', function(){
|
||
|
http.get(options, function(res){
|
||
|
res.statusCode.should.equal(200);
|
||
|
|
||
|
// kill the worker
|
||
|
var pid = cluster.children[0].proc.pid;
|
||
|
process.kill(pid, 'SIGQUIT');
|
||
|
});
|
||
|
});
|
||
|
|
||
|
var timeout;
|
||
|
|
||
|
cluster.on('worker timeout', function(worker){
|
||
|
worker.id.should.equal(0);
|
||
|
timeout = true;
|
||
|
});
|
||
|
|
||
|
cluster.on('worker connected', function(worker){
|
||
|
if (timeout) {
|
||
|
worker.id.should.equal(0);
|
||
|
http.get(options, function(res){
|
||
|
res.statusCode.should.equal(200);
|
||
|
cluster.close();
|
||
|
});
|
||
|
}
|
||
|
});
|