Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

windows server 上开启了两个 worker,但是只有一个 worker 在工作 #5397

Open
wenjiangs opened this issue Feb 17, 2025 · 6 comments

Comments

@wenjiangs
Copy link

在此输入你需要反馈的 Bug 具体信息(Bug in Detail):

Image

nginx 代理配置

location / {
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real_IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_redirect off;
        proxy_pass http://127.0.0.1:7001;
    }

package.json 启动参数

"start": "egg-scripts start --port=7001 --daemon --title=egg-server --sticky --stdout=logs_start/master-stdout.log --stderr=logs_start/master-stderr.log",

可复现问题的仓库地址(Reproduction Repo)

Node 版本号:

14.19.0

Eggjs 版本号:

2.15.1

相关插件名称与版本号(PlugIn and Name):

"egg": "^2.15.1", "egg-aliyun-sms": "^1.5.2", "egg-cors": "^2.2.3", "egg-memcache": "^1.1.4", "egg-mysql": "^3.0.0", "egg-nodemailer": "^1.0.0", "egg-redis": "^2.6.0", "egg-router-plus": "^1.3.1", "egg-scripts": "^2.11.0",

操作平台与版本号(Platform and Version):

windows server 2003

@fengmk2
Copy link
Member

fengmk2 commented Feb 17, 2025

可以将 nodejs 进程都打印出来,看看另外一个是 agent 还是 worker 进程

@wenjiangs
Copy link
Author

可以将 nodejs 进程都打印出来,看看另外一个是 agent 还是 worker 进程

let type = cluster.isWorker ? 'worker' : cluster.isMaster ? 'master' : 'agent' 查看了,都是 worker 进程

@fengmk2
Copy link
Member

fengmk2 commented Feb 18, 2025

进程完整名称能打印出来么?egg-scripts 启动有设置进程名的

@wenjiangs
Copy link
Author

进程名指的是 process.title 吗?我打印出来看都是一样,我打印了 worker 和 agent 的启动参数:

-------------
进程: 2952 
 启动参数: [
  'D:\\nodejs\\node.exe',
  'D:\\test\\eggRestful\\node_modules\\egg-cluster\\lib\\app_worker.js',
  '{"framework":"D:\\\\test\\\\eggRestful\\\\node_modules\\\\egg","baseDir":"D:\\\\test\\\\eggRestful","port":7002,"workers":2,"plugins":null,"https":false,"title":"egg-server-wenjiangs","sticky":true,"clusterPort":30164,"stickyWorkerPort":30165}'
]
-------------
进程: 14736 
 启动参数: [
  'D:\\nodejs\\node.exe',
  'D:\\test\\eggRestful\\node_modules\\egg-cluster\\lib\\agent_worker.js',
  '{"framework":"D:\\\\test\\\\eggRestful\\\\node_modules\\\\egg","baseDir":"D:\\\\test\\\\eggRestful","port":7002,"workers":2,"plugins":null,"https":false,"title":"egg-server-wenjiangs","sticky":true,"clusterPort":30164,"stickyWorkerPort":30165}'
]
-------------
进程: 19296 
 启动参数: [
  'D:\\nodejs\\node.exe',
  'D:\\test\\eggRestful\\node_modules\\egg-cluster\\lib\\app_worker.js',
  '{"framework":"D:\\\\test\\\\eggRestful\\\\node_modules\\\\egg","baseDir":"D:\\\\test\\\\eggRestful","port":7002,"workers":2,"plugins":null,"https":false,"title":"egg-server-wenjiangs","sticky":true,"clusterPort":30164,"stickyWorkerPort":30165}'
]
-------------
进程: 14736 
 启动参数: [
  'D:\\nodejs\\node.exe',
  'D:\\test\\eggRestful\\node_modules\\egg-cluster\\lib\\agent_worker.js',
  '{"framework":"D:\\\\test\\\\eggRestful\\\\node_modules\\\\egg","baseDir":"D:\\\\test\\\\eggRestful","port":7002,"workers":2,"plugins":null,"https":false,"title":"egg-server-wenjiangs","sticky":true,"clusterPort":30164,"stickyWorkerPort":30165}'
]

Image

@wenjiangs
Copy link
Author

经过测试,添加 --sticky 启动参数后,就会出现这种情况!

@fengmk2
Copy link
Member

fengmk2 commented Feb 21, 2025

对,这是 websocket 才需要的,如果你没有 websocket 服务,不要添加这个参数

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants