Luc*_*Luc 2 cluster-computing node.js
我使用以下代码来利用群集npm为我的节点应用程序.
form = require("connect-form");
express = require("express");
app = express.createServer(form({ keepExtensions: true }));
cluster = require("cluster");
// App configuration
// ....
// Run on cluster
cluster( app )
.use(cluster.logger('logs'))
.use(cluster.stats())
.use(cluster.pidfiles('pids'))
.use(cluster.cli())
.listen(port);
Run Code Online (Sandbox Code Playgroud)
这在节点0.4.4上工作正常,但我最终在节点0.6.5上出现以下错误
luc @ localhost:〜/ server $ node app.js
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
TypeError: Property 'cluster' of object #<Object> is not a function
at Object.<anonymous> (/home/luc/server/app.js:15:1)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at Array.0 (module.js:470:10)
at EventEmitter._tickCallback (node.js:192:40)
Run Code Online (Sandbox Code Playgroud)
我知道'cluster'已在0.4.x节点版本上进行了测试,但错误似乎很奇怪.
任何的想法 ?
@mengxy很好地指出了文档,但我遇到了同样的问题.我认为指出一些事情会很好:
在撰写本文时,LearnBoost集群git repo(http://github.com/LearnBoost/cluster/blob/master/examples/express.js)中给出的示例不适用于Node 0.6.
作为Node的最近采用者,我受许多例子的支配; 我怀疑其他人也是如此.我还没有看到Node 0.6 + cluster + express的一个很好的例子(可能是因为Node 0.6仍然是最新的).
因此,从非工作示例和@mengxy指向的Node 0.6文档派生出来,这是一个为快递应用程序提供服务的集群示例:
#!/usr/bin/env node
var cluster = require('cluster');
var express = require('express');
var os = require('os');
var app = express.createServer();
app.get('/', function(req, res){
res.send('Hello World from worker ' + process.env.NODE_WORKER_ID);
});
if (cluster.isMaster) {
// Fork workers. Two per core sounds reasonable to me.
for (var i = 0; i < os.cpus().length * 2; i++) {
var worker = cluster.fork();
}
} else {
// Worker processes have a http server.
app.listen(3000);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2556 次 |
| 最近记录: |