plex-web-downloader/node_modules/cluster/test/test.worker-quit-keep-alive.js

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();
});
}
});