WSGI, Django. Как посмотреть какую именно часть кода выполняет каждый воркер в конкретный момент?

Есть Django приложение, работает под UWSGI.

4 воркера.



Хочу в любой момент времени иметь возможность посмотреть какую именно часть кода выполняет каждый воркер.



Нашёл вот такую штуку projects.unbit.it/uwsgi/wiki/TipsAndTricks (первый пункт Retrieving a stack trace on request)



Вставил этот код в wsgi.py проекта,



и…



рабоатет немного не так как ожидалось



Если воркер выполняет какую-то работу, и я посылаю в этот момент времени сигнал (так как я хочу посмотреть что именно прямо сейчас выполняет мой воркер), то мой воркер отрабатыват как обычно и только потом показывается traceback для момента времени когда воркер уже отработал, само собой полезной информации там нет только что-то вроде

# ThreadID: -1224046912 (MainThread)

File: "./wsgi.py", line 56, in thread_dump



Что я сделал не так, или есть какие-то другие способы, что можно попробовать.
  • Вопрос задан
  • 2806 просмотров
Пригласить эксперта
Ответы на вопрос 1
svetlov
@svetlov
Ваши обработчики короткие, очевидно.
В Питоне сигналы срабатывают асинхронно с небольшой задержкой.
Думаю, worker успевает закончить свое грязное дело перед тем, как управление перейдет к обработчику сигнала.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы