İçeriğe geç

Yutulan Async Hatası (ARCH2169)

Anahtar python.logging.async-error-swallowed · Önem warning · Kategori logging

Beklenmeyen coroutine’ler ve “fire-and-forget” görevler, içlerindeki istisnaların sessizce kaybolmasına yol açar. Görev başarısız olur ama hiçbir yerde fark edilmez veya loglanmaz.

async def handle(req):
asyncio.create_task(send_notification(req))
return ok()
async def handle(req):
task = asyncio.create_task(send_notification(req))
task.add_done_callback(
lambda t: t.exception() and logger.error("Bildirim başarısız", exc_info=t.exception())
)
return ok()

Görevleri bekleyin ya da bir done-callback ile istisnaları yakalayıp loglayın.