2014-10-29 15 views
5

Ho un'applicazione Tornado e talvolta qualcuno aggiunge un codice che blocca per un orario inappropriato.Come posso rilevare le lunghe funzioni di blocco nell'applicazione Tornado

Come posso rilevare tali funzioni, forse anche registrare quale metodo del gestore/metodo di coroutine blocca per un periodo di tempo superiore, ad esempio, a 50 ms?

Sto guardando _make_coroutine_wrapper() in tornado.gen e non vedo un modo per eseguire il taglio, tranne che per la modifica della sorgente - che è ok per un debug una tantum, ma c'è un modo migliore?

risposta

17

È possibile utilizzare il metodo IOLoop.set_blocking_log_threshold. set_blocking_log_threshold(0.050) stamperà una traccia stack ogni volta che IOLoop viene bloccato per più di 50 ms.

+0

Grazie mille. Mi sento molto stupido ora. –

Problemi correlati