Python教程

python 异步 io 的一个小 demo

本文主要是介绍python 异步 io 的一个小 demo,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

工作中有这样的需求,快速获取多个仓库中的 commit 记录。通过学习,使用 httpx 这个支持异步的请求库和 asyncio 异步编程库并发地运行协程任务。

代码如下:

import asyncio
import httpx
import time

headers = {'Content-Type':'application/json','charset':'UTF-8'}
url = 'https://gitee.com/api/v5/repos/src-anolis-os/systemd/commits?page=1&per_page=5'

async def main(url):
    async with httpx.AsyncClient() as client:
        res = await client.get(url,headers = headers)
        # print([res.json()[0]['commit']['message']])

try:
    loop = asyncio.get_event_loop()
    start = time.time()
    tasks = [
        loop.create_task(main(url)) for i in range(10)
    ]
    loop.run_until_complete(asyncio.wait(tasks))
    print('spent %.2fs'%(time.time() - start))
finally:
    loop.close()
这篇关于python 异步 io 的一个小 demo的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!