出于我会在这里轻而易举的原因,我想让集群(在 node.js 中)启动的工作人员在重新启动之前每个工作 1 小时。
需要注意的是,我需要零停机时间。因此,简单地对每个 worker 执行 destroy() 是不可接受的,因为它会关闭集群,直到 worker 重新启动。
这是我的基本代码:
if(cluster.isMaster) {
for(var i=0; i<2; i++)
{
cluster.fork();
}
return;
}
require('./api').startup(settings, process.argv, function(error, api){
if(error)
{
console.log('API failed to start: '+error);
}
else
{
console.log('API is running');
}
});
api.js 脚本实现 express 以启动一个非常标准的 RESTful JSON API。