2014-10-29 6 views
5

Ich habe eine Tornado-Anwendung und manchmal jemand fügt einen Code, der für eine unpassende Zeit blockiert.Wie erkenne ich lange blockierende Funktionen in Tornado-Anwendung

Wie erkenne ich solche Funktionen, vielleicht sogar protokollieren welche Handler/Coroutine-Methode blockiert für eine Zeit länger als sagen wir 50ms?

Ich sehe _make_coroutine_wrapper() in tornado.gen, und sehe keine Möglichkeit zum Einschneiden, außer zum Ändern der Quelle - das ist ok für ein einmaliges Debuggen, aber gibt es einen besseren Weg?

Antwort

17

Sie können die Methode IOLoop.set_blocking_log_threshold verwenden. set_blocking_log_threshold(0.050) wird jedes Mal, wenn der IOLoop länger als 50 ms blockiert ist, einen Stack-Trace ausgeben.

+0

Vielen Dank. Ich fühle mich jetzt sehr dumm. –

Verwandte Themen