这是我的服务器入口点:
Method1
我制作了测试html页面,该页面将20次(或您需要的次数)测试请求发送给某个处理程序。这是它的代码:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-Dspring.profiles.active=${profile}","-jar","/app.jar"]`
启动我的服务器并查看控制台:
const numCPUs: number = require('os').cpus().length;
const PORT = process.env.PORT;
import server from './app';
import logger from './logger';
import Domain = require('domain');
import cluster = require('cluster');
if (cluster.isMaster) {
logger.info(`Master ${process.pid} is running`);
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
logger.info(`Worker ${worker.process.pid} died`);
cluster.fork();
});
} else {
const domain = Domain.create();
domain.on('error', (error) => {
logger.error(`Domain error in precess id:${ process.pid }`, error);
...
});
domain.run(() => {
server.listen(PORT, () => {
logger.info(`Express server id:${ process.pid } listening on port ${ PORT }`);
});
});
}
如您所见,我有一些工作人员,但只有一个处理客户的请求。
如何强制node.js使用所有工作程序?
答案 0 :(得分:0)
原因是保持活动标题。
试图同时在两个浏览器中开始测试。
我在控制台中看到两个不同的ID!