我有一个Tornado应用程序,有时会有人添加阻止不适当时间的代码。
如何检测这些函数,甚至可以记录哪个处理程序/协同程序方法阻塞的时间超过50毫秒?
我正在查看_make_coroutine_wrapper()
中的tornado.gen
,除了修改源代码之外没有办法切入,这对于一次性调试来说是好的,但是在那里更好的方法?
答案 0 :(得分:17)
您可以使用IOLoop.set_blocking_log_threshold方法。只要IOLoop被阻止超过50毫秒,set_blocking_log_threshold(0.050)
就会打印堆栈跟踪。