python 的异步请求

  • Python 中的异步是根据loop 来实现的,看代码:
import asyncio
import requests

class Async_requests(object):
    """异步请求"""
    async def get(self,url):
        return requests.get(url)

    async def reqt(self,url):
        response = await self.get(url)
        return response
    def start_one_async(self,url):
        task = asyncio.ensure_future(self.reqt(url)) # 添加任务
        loop = asyncio.get_event_loop() # 返回一个异步事件循环
        loop.run_until_complete(task) #执行事件循环并等待事件完成
        return task.result() # 获取任务执行后的结果

    def start_many_async(self,url):
        tasks = [asyncio.ensure_future(self.reqt(url)) for _ in range(10)]
        loop = asyncio.get_event_loop()
        loop.run_until_complete(asyncio.wait(tasks))
        return [task.result() for task in tasks]

if __name__ == '__main__':
    url = "http://www.baidu.com"
    ret=Async_requests().start_one_async(url)
    ret1 = Async_requests().start_many_async(url)
    print(ret)
    print(ret1)
发布了127 篇原创文章 · 获赞 25 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_44224529/article/details/103680774
今日推荐