我将线程池的大小限制为25。
process.env.UV_THREADPOOL_SIZE = 25;
如何知道运行时所有线程都已耗尽?
有什么方法可以找到所有定义线程在 一个新请求?
我正在使用Node.js(NAN)的本机抽象来调用C ++函数。对于每个对C ++的请求,都会创建Nan :: AsyncQueueWorker。在这里,我想查找线程限制是否已用尽,然后添加一个安全系数。
答案 0 :(得分:6)
您要在nan或js中实现吗?
在Nan impl中:
您必须手动执行。维护一个映射,键为int且值为workAsyn。推入每个呼叫,并在workAsyn完成时删除。针对每个请求执行此操作。
将地图的大小与定义的线程限制进行比较。
答案 1 :(得分:2)
答案 2 :(得分:1)
这个cluster
模块似乎可以提供帮助...
var cluster = require('../')
,http = require('http');
var server = http.createServer(function(req, res){
res.writeHead(200);
res.end('Hello World');
});
var workerCount = 0;
cluster(server)
.listen(3000)
.on('worker',()=> {
workerCount++;
console.log('workerCount',workerCount)
})
.on('worker killed',()=> {
workerCount--;
console.log('workerCount',workerCount)
})
似乎还可以使用REPL“ telnet”插件直接从master
访问工作人员计数...