python gevent pool 異步請求使用


import time

from gevent import monkey
import gevent
from gevent.pool import Pool

monkey.patch_all()  # 保證放在上面

import requests


def f(_url: str):
    print('GET: %s' % _url)
    res = requests.get(_url)
    time.sleep(3)  # 假裝網絡很慢 3秒才拿到數據
    return res.text


if __name__ == '__main__':
    start = time.time()
    p = Pool(2)
    result = []
    apps = [
        p.spawn(f, 'https://www.qq.com/'),
        p.spawn(f, 'https://www.qq.com/'),
        p.spawn(f, 'https://www.qq.com/'),
    ]
    gevent.joinall(apps)  # 等待這些處理結束
    end = time.time()
    cost = end - start
    print("花費了 %.3f 秒" % cost)
    gevent.joinall(apps)  # gevent.wait()
    for i, g in enumerate(apps):
        print(f"返回值長度 {len(g.value)}")

D:\app\Miniconda3\envs\torch-learn\python.exe C:/Users/shuai2/PycharmProjects/torch-learn/tt.py
GET: https://www.qq.com/
GET: https://www.qq.com/
GET: https://www.qq.com/
花費了 6.401 秒
返回值長度 99430
返回值長度 99430
返回值長度 99430

Process finished with exit code 0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM