Я хочу использовать базовый requestHander для получения глобальных аргументов из redis перед всем запросом (GET 、 POST ..) ,, и я использую сопрограмму в торнадо в качестве асинхронного и ожидающего. но я использую aredis для клиента redis-server, и baseHandler не поддерживает использование async в init методе, потому что мне нужно, когда класс super, родительский класс может получить аргументы или запрос был подтвержден в контрольных параметрах от redis.
код, как это.
import aredis
redis_client = aredis.StricRedis('redis://xxxx')
class BaseHandler(tornado.web.requestHander):
def check_request(self):
check_one = await redis_client.get(self.request.body['param'])
if not check_one:
self.finish(dict(msg='refused'))
async def get_params(self):
data = await redis_client.get('xxx')
self.data = data
class UserHander(BaseHander):
async def get(self,*args,**kwargs):
data = self.data
return self.finish(data)