د همغږو urllib3 پراکسي غوښتنو څخه هر نتیجه راټولول
یو تنظیم شوی ProxyManager د کاري تارونو ترمنځ شریک کړئ، د اجرا کوونکي د نتیجو تکراروونکې وسیله وکاروئ او د پول ساتنه د اتصال له حد څخه جلا کړئ.
د کاري پول جوړول کال کوونکي ته ډاونلوډ شوې پاڼې نه ورکوي. هغه ارزښتونه وساتئ او وکاروئ چې سپارل شوی کار یې بیرته راګرځوي:
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 تونلونو لپاره کارول شوې لار هم مهمه ده؛ د یو پول ترتیب باید د هر کوربه لپاره د یو نړیوال ساکټ کوتا په توګه ونه ښودل شي.