Получить идентификатор рабочего от самого рабочего Gunicorn

Я запускаю несколько рабочих-пулеметчиков с настройкой workers=4. Насколько я понимаю, у меня есть 5 разных процессов: один главный процесс-пулеметчик и 4 других рабочих процесса. Могу ли я получить информацию о том, какой работник в данный момент обслуживает запрос? Итак, могу ли я получить любой идентификатор воркера внутри самого воркера, например, на каждый запрос отправить ответ с содержимым: этот запрос был обслужен worker: worker_id?


person Most Wanted    schedule 06.01.2016    source источник
comment
Удалось ли вам это решить? Если да, то можете ли вы привести пример.   -  person neel    schedule 09.08.2016
comment
@neel, поэтому внутри вашего рабочего кода просто вызовите import os; print(os.getpid())   -  person Most Wanted    schedule 11.08.2016
comment
@MostWanted Пожалуйста, ответьте   -  person jtlz2    schedule 10.04.2019


Ответы (2)


В целях отладки вы можете использовать обработчик post_request для регистрации рабочего pid

def post_response(worker, req, environ, resp):
    worker.log.debug("%s", worker.pid)
person chuan    schedule 20.04.2016
comment
Спасибо, это то, что мы на самом деле делаем - person Most Wanted; 21.04.2016
comment
Как использовать его в файле Python? Как мы можем печатать идентификатор рабочего с каждым запросом? - person neel; 09.08.2016
comment
@neel, если вы хотите, чтобы этот код работал, поместите фрагмент, например, в gunicorn_config.py, а затем запустите свой код с помощью gunicorn app_module:app --config gunicorn_config.py, чтобы он подхватил этот хук и записал желаемую информацию. - person Most Wanted; 11.08.2016

В рабочем коде просто используйте

import os
print(os.getpid())

Идентификатор процесса - достаточно хороший идентификатор для такого случая. Другой вариант, который, очевидно, является излишним, - создать на этом этапе файл идентификатора рабочего стола для каждого рабочего 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.

person Most Wanted    schedule 10.04.2019