import asyncio import random import time # 需求:有一個crontab調度器,每隔1秒,拉起1個job,要求這些job可以併發爬取網頁 async def cron_scheduler(): page0 = 1 start = time.time() for i in range(10000): url0 = "{}/{}".format("https://baidu.com", page0) [asyncio.create_task(cron_job(url0)) for i in range(50 )] await asyncio.sleep(0) # 主動讓渡線程 end = time.time() print("time:",end-start) async def cron_job(url): n = random.randint(1, 3) # 模擬下載延遲 await asyncio.sleep(n) print("下載結束:", url) asyncio.run(cron_scheduler())
推導式異步更快