python - aiohttp 和 firebase 以及 firebase-admin - 它是非阻塞的吗? python 3.6

标签 python python-3.x python-3.6 aiohttp firebase-admin

python 3.6

这是我的 firebase 代码,它将检查用户是否存在于 firebase 上:

import firebase_admin
from firebase_admin import credentials
from firebase_admin import auth


cred = credentials.Certificate('wow.json')
default_app = firebase_admin.initialize_app(cred)

def getIsUser(email=None,uid=None):
        try:
            user = auth.get_user(uid)
            is_user = True
        except:
            is_user = False

    return is_user

这是调用函数的 aiohttp:

async def jwt_route(request):
    data = await request.json()
    uid = data['uid']
    is_user = getIsUser(uid=uid)

app.router.add_post('/jwt', jwt_route)

我的问题是 getIsUser(uid=uid) 是否阻塞。如果是阻塞的,我该如何让它成为非阻塞的?

最佳答案

是的,getIsUser 是一个阻塞调用。

在线程池中运行: loop = asyncio.get_event_loop() is_user = loop.run_in_executor(无,getIsUser,uid)

关于python - aiohttp 和 firebase 以及 firebase-admin - 它是非阻塞的吗? python 3.6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46378139/

相关文章:

python - 没有 DLL 的 SWIG + Python

tkinter - Python 中的简单下拉日历 + 日期选择器

python-3.x - 在 Windows 上安装 pycairo 时如何解决问题?

python - 以有限的优先级启动子进程

python - 导入错误 : TensorBoard

Python 3 子进程 SIGABRT

python - 数巴 : cell vars are not supported

python - 使用关键字参数在 Python 中初始化,无需在实例之间共享

使用 pySerial 的 Python 3 非阻塞读取(无法使 pySerial 的 "in_waiting"属性起作用)

python - 从 3D 数组中选择非无限数据