मैं एक प्रोग्राम है जो एक coroutine मुख्य 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()
मुझे एक पूर्ण स्टैक ट्रेस मिलता है जैसे मुझे उम्मीद है (और आवश्यकता है)। कोरआउटिन का उपयोग करते समय मैं उस स्टैक ट्रेस को कैसे प्राप्त कर सकता हूं?
अपवादों को संभालने के लिए gen.coroutine "अपवाद" त्रुटियों को पकड़ता है। gen.engine ऐसा मत करो। देखें http://stackoverflow.com/a/23502625/1066801 – M07