我在workers=4
设置下运行多个gunicorn工作人员。据我所知,我有5个不同的过程:一个gunicorn主进程和另外4个工作进程。我现在可以获得有关哪个工作人员正在处理请求的信息吗?因此,我可以从内部工作人员本身获取任何工作者ID,例如每个请求发送回内容的响应:此请求由worker提供:worker_id ?
答案 0 :(得分:1)
出于调试目的,您可以使用post_request挂钩来记录worker pid
def post_response(worker, req, environ, resp):
worker.log.debug("%s", worker.pid)
答案 1 :(得分:0)
只需在工作代码中使用
import os
print(os.getpid())
在这种情况下,进程ID是足够好的标识符。很明显,另一个过大的选择是在此时https://docs.gunicorn.org/en/stable/settings.html?highlight=hooks#post-worker-init为每个工作人员创建一个工作人员ID文件,并在需要时从中读取。不要忘记在出口https://docs.gunicorn.org/en/stable/settings.html?highlight=hooks#worker-exit
上删除此文件