Asenkron içinde bloklayan çağrı (ARCH2028)
Anahtar python.async.blocking-call-in-async · Önem error · Kategori async
Bir async fonksiyon içinde senkron bloklayan çağrılar (time.sleep, bloklayan IO, senkron HTTP/DB sürücüleri) event loop’u durdurur ve tüm eşzamanlılığı aç bırakır. Asenkron eşdeğerleri kullanılmalıdır.
Hatalı
Bölüm başlığı “Hatalı”import time
async def poll(): time.sleep(5) # event loop'u bloklar return await fetch_status()import asyncio
async def poll(): await asyncio.sleep(5) # loop'u bloklamaz return await fetch_status()Düzeltme
Bölüm başlığı “Düzeltme”Bloklayan çağrıyı asenkron eşdeğeriyle değiştirin veya run_in_executor ile thread havuzuna taşıyın.