ioloop
次のように、メインから定期的に呼び出されるコルーチンを持つプログラムを作成しました。
from tornado import ioloop, web, gen, log
tornado.log.enable_pretty_printing()
import logging; logging.basicConfig()
@gen.coroutine
def callback():
print 'get ready for an error...'
raise Exception()
result = yield gen.Task(my_async_func)
l = ioloop.IOLoop.instance()
cb = ioloop.PeriodicCallback(callback, 1000, io_loop=l)
cb.start
l.start()
私が得る出力は単純です:
$ python2 app.py
get ready for an error...
get ready for an error...
get ready for an error...
get ready for an error...
はraise Exception()
黙って無視されます。コールバックを変更した場合
def callback():
print 'get ready for an error...'
raise Exception()
期待どおりの(そして必要な)完全なスタック トレースを取得します。コルーチンの使用中にそのスタック トレースを取得するにはどうすればよいですか?