gpt4 book ai didi

javascript - nodejs集群模块-地址使用错误

转载 作者:搜寻专家 更新时间:2023-10-31 23:27:32 24 4
gpt4 key购买 nike

我有一个 express.js 应用程序,它必须在每次有特定请求时运行一个子进程(这里是:/compute/real-time)。将有用户创建的脚本来计算数据。因此,我使用 Node 集群模块来创建一个工作池并选择一个可以自由执行脚本的。但是我在集群本身的创建过程中遇到了困难。这是代码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
}
}

计算.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
})
}

网络服务器.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)

请问这个问题有什么解决办法吗?提前致谢

最佳答案

这是其中一种情况,当您的服务器代码面临错误并且由于错误处理不当,我们得到异常但端口仍然繁忙。因此,您需要清除保留该端口的应用程序。如果你使用的是 linux,你可以使用

lsof -i :3000

获取进程ID并使用杀死该进程

kill -9 #processId

然后重启你的服务器。

关于javascript - nodejs集群模块-地址使用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21511109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com