我有一个express.js应用程序,它必须在每次有特定请求时运行一个子进程(这里是:/ compute / real-time).将有用户创建的脚本来计算数据.所以,我正在使用节点集群模块来创建一个工作池并选择一个可以自由执行脚本的工作器.但是我在创建集群期间遇到了困难.这是代码
clusterPool.js
clusterPool.js
var cluster = require('cluster'); exports.setupCluster = function(){ console.log ("Setting up cluster for bot processing " ) if (cluster.isMaster){ cluster.fork(); //one is good enough at the moment } }
compute.js
var async = require('async'); var clusterPool = require('.././clusterPool') //Start the cluster clusterPool.setupCluster(); exports.computeRealTime = function(req,res){ clusterPool.cluster.on("listening",function(worker){ //....Do something with the worker }) }
webserver.js
// Include Express var express = require('express'); var compute = require('.././compute'); // Create a new Express application var app = express(); // Add a basic route – index page app.get('/compute/real-time',compute.computeRealTime); // Bind to a port app.listen(3000);
这是我面临的错误:
error: code=EADDRINUSE,errno=EADDRINUSE,syscall=bind error: Error: bind EADDRINUSE at errnoException (net.js:884:11) at net.js:1056:26 at Object.1:2 (cluster.js:587:5) at handleResponse (cluster.js:171:41) at respond (cluster.js:192:5) at handleMessage (cluster.js:202:5) at process.EventEmitter.emit (events.js:117:20) at handleMessage (child_process.js:318:10) at child_process.js:392:7 at process.handleConversion.net.Native.got (child_process.js:91:7)
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。