簡體   English   中英

aiohttp和firebase和firebase-admin-是否非阻塞? python 3.6

[英]aiohttp and firebase and firebase-admin - is it non blocking? python 3.6

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(None, getIsUser, uid)

我建議使用與安德魯答案不同的方法。 我認為-打開線程會使應用程序代碼復雜化並跟蹤錯誤。

在沒有支持asyncio的庫asyncio ,您應該使用REST API,與aiohttp異步調用它。

對於auth我正在使用已棄用的數據庫密碼,因此它並不理想,但目前可以使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM