Торнадо В чем разница между @ web.asynchronous @ gen.coroutine VS @ gen.corutine
вдокумент@ web.asynchronous не требуется, если метод также украшен @ gen.coroutine. как это
@web.asynchronous
@gen.coroutine
def get(self):
...
но в документе они также объясняют, что если вы используете @ web.asynchronous, вам следует вызвать self.finish (). Однако в вышеприведенном случае (с использованием двух декораторов вместе) соединение завершается без вызова «self.finish ()»
Мне интересно, что там произошло.
и в случае ниже, он работает по-другому с выше.
@web.asynchronous
def get(self):
self.test()
@gen.coroutine
def test(self):
httpClient = AsyncHttpClient()
val = yield httpClient.fetch("http://www.google.com")
print test
#self.finish()
Если «self.finish ()» не вызывается, соединение не закрывается.
Кто-нибудь может это объяснить?