我正在设置我的后端,这是一个在docker容器内运行的NodeJS应用程序。
在我的app.js检查它正在运行的VM之前,为x个可用核心启动x个实例。
现在它在docker容器内运行,我应该将代码留在哪里,或者docker会以某种方式管理它自己,并且节点应用程序能够看到它可用的内核数量吗?
以下是我正在使用的代码
#!/usr/bin/env node
var debug = require('debug')('node-exampleapp');
var cluster = require('cluster')
if (cluster.isMaster) {
// Count the machine's CPUs
var cpuCount = require('os').cpus().length;
// Create a worker for each CPU
for (var i = 0; i < cpuCount; i += 1) {
cluster.fork();
console.log('Worker ' + i + 'created');
}
// Listen for dying workers
cluster.on('exit', function () {
cluster.fork();
});
} else {
var app = require('../app');
app.set('port', process.env.PORT || 3000);
var server = app.listen(app.get('port'), function() {
debug('Express server listening on port ' + server.address().port);
});
}
答案 0 :(得分:0)
保留代码。就您的应用程序所知,它仍然在主机上运行,它可以看到该机器的硬件功能。