ការបង្កើតអាងកម្មករមិនផ្តល់ទំព័រដែលបានទាញយកដល់អ្នកហៅទេ។ រក្សាទុក និងប្រើប្រាស់តម្លៃដែលការងារដែលបានដាក់ស្នើត្រឡប់មកវិញ៖

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 ក៏មានសារៈសំខាន់ដែរ។ ការកំណត់សម្រាប់អាងមួយមិនគួរត្រូវបានពិពណ៌នាថាជាកូតារន្ធដោតសកលតែមួយសម្រាប់គ្រប់ម៉ាស៊ីនទេ។

អត្ថបទពាក់ព័ន្ធ