gpt4 book ai didi

node.js - NodeJS - 访问外部进程时如何处理 "listen EADDRINUSE"

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

我使用 phantomJS 打印 PDF,带有 phantomjs-node 模块。它运行良好,但是当我尝试一次创建多个文件时,它会抛出一个未处理的错误“Listen EADDRINUSE.

我认为这是因为该模块使用了 phantomJS,这是一个外部进程,它无法多次将其绑定(bind)到同一端口?

无论如何,我无法捕捉到这个错误,我想至少通过避免发生这种情况时服务器崩溃来解决这个问题。我想到了使用一个“全局”变量,如储物柜,以阻止并发调用,直到当前调用完成。

关于如何实现它或任何其他解决方案的任何想法?

最佳答案

来自@AndyD 的代码不正确恕我直言。参见

中的第 45 - 54 行

https://github.com/sgentle/phantomjs-node/blob/master/phantom.coffee

所以例子应该是

var portscanner = require('portscanner');
var phantom = require('phantom');

portscanner.findAPortNotInUse(40000, 60000, 'localhost', function(err, freeport) {
phantom.create({'port': freeport}, function(ph){
...
}
});

关于node.js - NodeJS - 访问外部进程时如何处理 "listen EADDRINUSE",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17089817/

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