Найти блокирующую функцию в приложении python / django - PullRequest
1 голос
/ 05 июня 2019

При подаче запроса мой рабочий-оружейник истекает.

Это большое приложение, и я не уверен, где это происходит.

Существует ли простой способ регистрировать все вызовы функций, чтобы я мог видеть последний вызов, в котором он заблокирован?

1 Ответ

0 голосов
/ 05 июня 2019

После некоторого копания я обнаружил крюк с оружием под названием worker_exit, который можно добавить в файл конфигурации.Этот хук вызывается при выходе работника, как и при истечении времени ожидания.В хуке выполняется вызов traceback.print_exc(), который печатает трассировку стека.

# gunicorn.py 

import traceback

def worker_exit(server, worker):
    traceback.print_exc();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...