İçeriğe geç

gather hatalı kullanımı (ARCH2032)

Anahtar python.async.gather-misuse · Önem info · Kategori async

Birbirinden bağımsız coroutine’leri ayrı ayrı await etmek paralelleştirme fırsatını kaçırır. İlk hatada diğer sonuçları kaybetmemek gerektiğinde ise gather(..., return_exceptions=True) kullanılmalıdır.

async def load():
a = await fetch_a() # ardışık, paralelleşmiyor
b = await fetch_b()
return a, b
import asyncio
async def load():
a, b = await asyncio.gather(fetch_a(), fetch_b())
return a, b

Bağımsız coroutine’leri asyncio.gather ile paralel çalıştırın; sonuç kaybını önlemek için return_exceptions=True ekleyin.