د کاري پول جوړول کال کوونکي ته ډاونلوډ شوې پاڼې نه ورکوي. هغه ارزښتونه وساتئ او وکاروئ چې سپارل شوی کار یې بیرته راګرځوي:

from concurrent.futures import ThreadPoolExecutor
import urllib3

manager = urllib3.ProxyManager(
    'http://proxy.example:8080',
    maxsize=4,
    block=True,
)

def fetch(url):
    response = manager.request(
        'GET', url, timeout=urllib3.Timeout(connect=5, read=15),
    )
    return url, response.status, response.data

try:
    with ThreadPoolExecutor(max_workers=4) as workers:
        results = list(workers.map(fetch, urls))
finally:
    manager.clear()

دا برخه محدوده URL لیست او عادي ځواب اندازه فرض کوي. د پراکسي تصدیق پرته د اجازه ورکړل شوو عامه URL ازموینو لپاره د HTTP پراکسي لیست یو نوماند کولی شي د مدیر د بېلګې HTTP پای ټکی بدل کړي. هر نتیجه خپل URL لري ترڅو کال کوونکی حالت او بدن له سمې غوښتنې سره ونښلوي. map نتیجې د ننوتلو په ترتیب بیرته راګرځوي؛ په کارګر کې استثنا هغه وخت پورته کیږي چې هغه نتیجه ترلاسه شي.

تنظیم شوی ProxyManager د غوښتنو لپاره د اتصالونو پول لري. دلته کارول شوي د مخکې له مخکې بار شوي ځواب اصلي حالت سره، urllib3 بدن لولي او اتصال خپل پول ته بیرته راګرځوي. د سټریمنګ نسخه به څرګند مصرف او د اتصال خوشې کولو ته اړتیا ولري.

maxsize معمولاً ساتل شوي بیا کارېدونکي اتصالونه کنټرولوي، نه په هر پرانیستل شوي ساکټ باندې سخت حد. block=True اړوند د پول چلند بدلوي ترڅو کال کوونکي د هغه پول له حده ډېر اضافي پرانیستلو پرځای ازاد اتصال ته انتظار وکړي.

په دې بېلګه کې د کارګرانو شمېر همغږي کالونه محدودوي. د ډېرو منزلونو سره، د پول ترتیب او د HTTPS تونلونو لپاره کارول شوې لار هم مهمه ده؛ د یو پول ترتیب باید د هر کوربه لپاره د یو نړیوال ساکټ کوتا په توګه ونه ښودل شي.

اړوندې مقالې