从Gunicorn工作人员那里获取工人身份

问题描述 投票:5回答:2

我用workers=4设置运行多个gunicorn工人。据我所知,我有5个不同的过程:一个gunicorn主进程和另外4个工作进程。我现在可以获得有关哪个工作人员正在处理请求的信息吗?因此,我可以从内部工作人员本身获取任何工作者ID,例如每个请求发回一个包含内容的响应:此请求由worker提供:worker_id?

python webserver gunicorn worker
2个回答
1
投票

出于调试目的,您可以使用post_request挂钩来记录worker pid

def post_response(worker, req, environ, resp):
    worker.log.debug("%s", worker.pid)

0
投票

在一个工人代码中使用

import os
print(os.getpid())

对于这种情况,进程ID是足够好的标识符。显然是矫枉过正的另一个选择是在此时为每个工人创建一个worker-id文件https://docs.gunicorn.org/en/stable/settings.html?highlight=hooks#post-worker-init并在需要时从中读取。不要忘记在退出https://docs.gunicorn.org/en/stable/settings.html?highlight=hooks#worker-exit时删除此文件

© www.soinside.com 2019 - 2024. All rights reserved.