О да. Это определенно принесет пользу.
Поскольку сервер занят загрузкой внешних ресурсов, он может продолжать обслуживать другие вызовы, поскольку интерпретатор не заблокирован.
В обычных веб-серверах вы используете что-то вроде Gevent для достижения этой цели.
Кроме того, с Tornado 2.1 и выше,
Step1 и Step2 могут быть объединены как:
def get (self):
http_client = AsyncHTTPClient()
response1, response2 = yield [gen.Task(http_client.fetch, url1),
gen.Task(http_client.fetch, url2)]