2016-12-06 3 views
0

Я хочу, чтобы вызвать метод асинхронной из других библиотек в торнадо, как так:Как вызвать дополнительный асинхронный метод в Tornado?

class Database: 
    async def find_info(user_id): 
     pass 

class TestClass(tornado.web.RequestHandler): 
    def get(self, id): 
     db = Database() 
     user = yield db.find_info(user_id=id) 
     return self.write(user.username) 

Но он идет к чему-то, как спящий режим, и я никогда не получить какой-либо результат.

ответ

2

Какие еще библиотеки? Большинство асинхронных функций записываются для определенного цикла событий (Tornado, asyncio, Twisted и т. Д.). Различные циклы событий не взаимодействуют, если вы не попросите их. Вероятно, вы хотите включить совместимость Tornado/asyncio с tornado.platform.asyncio.AsyncIOMainLoop

+0

Спасибо за ваш ответ. «AsyncIOMainLoop» могу создать свою собственную библиотеку, которая может работать с корпорацией Tornado? – Mortezaipo

+0

Выбор реализации IOLoop зависит от приложения, а не от библиотек. Если вы хотите написать библиотеку, вы можете использовать либо tornado.ioloop.IOLoop, либо asyncio.EventLoop (общие интерфейсы каждой структуры) –

Смежные вопросы