Ateşle ve unut görevi (ARCH2021)
Anahtar python.async.fire-and-forget-task · Önem warning · Kategori async
Bir coroutine veya task’ı bekletmeden, atamadan ya da döndürmeden ifade olarak bırakmak istisnaların yutulmasına ve sıralamanın belirsizleşmesine yol açar. Görev arka planda kontrolsüz çalışır ve başarısızlıkları sessizce kaybolur.
Hatalı
Bölüm başlığı “Hatalı”import asyncio
async def handle(): asyncio.create_task(send_email()) # beklenmiyor, hatalar kaybolur return "ok"import asyncio
async def handle(): task = asyncio.create_task(send_email()) await task return "ok"Düzeltme
Bölüm başlığı “Düzeltme”Oluşturulan task’ı bekletin, döndürün veya bir TaskGroup ile ömrünü ve istisnalarını yönetin.