asyncio
ve güzel aiohttp
kullanıyorum. Ana fikir, sunucuya istekte bulunmam (bağlantılar döndürüyor) ve daha sonra paralel (example'da olduğu gibi) tüm bağlantılardan dosyaları indirmek istiyorum.Neden Python asyncio'da "Görev yıkıldı, ancak beklemede" hatası alıyorum?
Kodu:
import aiohttp
import asyncio
@asyncio.coroutine
def downloader(file):
print('Download', file['title'])
yield from asyncio.sleep(1.0) # some actions to download
print('OK', file['title'])
def run():
r = yield from aiohttp.request('get', 'my_url.com', True))
raw = yield from r.json()
tasks = []
for file in raw['files']:
tasks.append(asyncio.async(downloader(file)))
asyncio.wait(tasks)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(run())
Ama bunu çalıştırmayı denediğinizde, ben çok "İndir ..." çıkışları ve 'OK + dosya' hakkında
Task was destroyed but it is pending!
Ve hiçbir şey.
Bunu nasıl düzeltebilirim?
Hoş cevap için çok teşekkürler – tim