2016-01-06 4 views
3

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

+0

Вы были в состоянии решить эту проблему? Если да, можете ли вы привести пример. – neel

+1

@neel, поэтому внутри вашего рабочего кода просто наберите 'import os; print (os.getpid()) ' –

ответ

1

Для отладки цели, вы можете использовать post_request крюк, чтобы войти в рабочий Pid

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

Спасибо, это то, что мы на самом деле делаем –

+0

Как использовать его в файле python? Как мы можем печатать идентификатор работника с каждым запросом? – neel

+1

@neel, если вы хотите, чтобы этот код работал, поместите фрагмент в, например. 'gunicorn_config.py', а затем запустите свой код с помощью' gunicorn app_module: app --config gunicorn_config.py', чтобы он взял этот крючок и запустил нужную информацию –

Смежные вопросы