3
我跟進了本教程:https://pawelmhm.github.io/asyncio/python/aiohttp/2016/04/22/asyncio-aiohttp.html,當我做了50 000個請求時,一切正常。但是,我需要做的長槍1個API調用,然後我有問題,這樣的代碼:使用aiohttp/asyncio進行1千萬個請求 - 字面上
url = "http://some_url.com/?id={}"
tasks = set()
sem = asyncio.Semaphore(MAX_SIM_CONNS)
for i in range(1, LAST_ID + 1):
task = asyncio.ensure_future(bound_fetch(sem, url.format(i)))
tasks.add(task)
responses = asyncio.gather(*tasks)
return await responses
因爲Python需要創建1個暢想任務,它基本上只是落後,然後打印在終端Killed
消息。有沒有什麼方法可以使用由預先製作的(或列表)網址組成的發電機?謝謝。
這不是信號量嗎?即使我將信號量設置爲10,我也會遇到延遲和「死亡」消息。 –
我試圖從鏈接的例子,它的工作原理。就像作者說的那樣,大約11-12分鐘爲1000000個請求。我甚至調整了它與python3.4一起工作。在這裏工作。也許在其他地方你的代碼有其他問題。你能發佈整個代碼嗎? – roman
您可以在程序被終止後發佈'dmesg'命令輸出和/或Python解釋器得到的完整錯誤。它應該是一個MemoryError。 – amirouche