ផ្តល់ឱ្យ proxy aiohttp នីមួយៗនូវថវិកាភាពស្របគ្នារបស់ខ្លួន
កំណត់ការងារដែលកំពុងដំណើរការក្នុងមួយ proxy ដែលបានជ្រើសរើស ខណៈដែលរក្សាដែនកំណត់អាងតភ្ជាប់ aiohttp និងការសម្អាតការឆ្លើយតប។
អាង proxy អាចមានចំណុចចុងក្រោយដែលមានសមត្ថភាពខុសៗគ្នាខ្លាំង។ ការអនុញ្ញាតឱ្យមានប្រតិបត្តិការហាសិបនៅទូទាំងកម្មវិធីមិនរារាំងក្នុងចំណោមនោះសែសិបប្រាំបួនពីការជ្រើសរើស proxy ដូចគ្នានោះទេ។
ប្រសិនបើគោលនយោបាយគឺ «ប្រតិបត្តិការកំពុងដំណើរការច្រើនបំផុតបួនតាមរយៈ proxy ដែលបានជ្រើសរើសនីមួយៗ» សូមបញ្ជាក់គោលនយោបាយនោះដោយផ្ទាល់។ រក្សា semaphore សម្រាប់អត្តសញ្ញាណ proxy នីមួយៗ ហើយទទួលបានវានៅជុំវិញការងារដែលប្រើប្រាស់សមត្ថភាពរបស់ proxy ។
limits = {proxy: asyncio.Semaphore(4) for proxy in proxy_urls}
async def fetch(session, proxy, url):
async with limits[proxy]:
async with session.get(url, proxy=proxy) as response:
return await response.read()គំនូរព្រាងនេះសន្មតថា asyncio ត្រូវបាននាំចូល ហើយ URL របស់ proxy ត្រូវបានផ្ទៀងផ្ទាត់។ សម្រាប់សំណើសាធារណៈនៅលើផ្លូវ proxy សាធារណៈដែលត្រូវបានអនុញ្ញាត បញ្ជី proxy HTTP ផ្តល់បេក្ខជនសម្រាប់ URL proxy របស់ aiohttp ។ កម្មវិធីពិតប្រាកដក៏គួរកំណត់ពេលវេលាផុតកំណត់សំណើរបស់ខ្លួន និងសម្រេចថាតើត្រូវការទិន្នន័យឆ្លើយតបប៉ុន្មាន។ ការអានឯកសារធំទាំងស្រុងទៅក្នុងអង្គចងចាំគឺជាការសម្រេចចិត្តធនធានដាច់ដោយឡែក។
រក្សាការអនុញ្ញាតសម្រាប់ផ្នែកដែលមានតម្លៃថ្លៃ
ការដោះលែង semaphore ភ្លាមៗនៅពេលក្បាលឆ្លើយតបមកដល់អាចធ្វើឱ្យដែនកំណត់ដែលបានបម្រុងទុកបរាជ័យ។ តួដែលផ្សាយបន្តអាចបន្តប្រើការតភ្ជាប់យូរបន្ទាប់ពីនោះ។ រក្សាការអនុញ្ញាតរហូតដល់តួត្រូវបានប្រើប្រាស់ ឬការឆ្លើយតបត្រូវបានបិទយោងតាមលំហូរការងាររបស់កម្មវិធី។
អ្នកគ្រប់គ្រងបរិបទដែលដាក់បញ្ចូលគ្នាធ្វើឱ្យការសម្អាតអាចមើលឃើញនៅពេលករណីលើកលែង ឬការលុបចោលចាកចេញពីប្រតិបត្តិការ។ ជៀសវាងការទទួលបានដោយដៃ និងដោះលែងតែនៅបាតមុខងារជោគជ័យ។
ដែនកំណត់តភ្ជាប់ឆ្លើយសំណួរមួយផ្សេង
ដែនកំណត់ឧបករណ៍តភ្ជាប់របស់ aiohttp កំណត់ការតភ្ជាប់យោងតាមច្បាប់ដែលបានចងក្រងរបស់ឧបករណ៍តភ្ជាប់។ ពួកវានៅតែមានប្រយោជន៍នៅក្បែរ semaphore របស់កម្មវិធី។ ដែនកំណត់តភ្ជាប់ក្នុងមួយគោលដៅមិនបញ្ជាក់ ដោយគ្រាន់តែឈ្មោះរបស់វា ថវិកាដែលចែករំលែកដោយគោលដៅទាំងអស់ដែលបានកំណត់ទៅ proxy មួយនោះទេ។
ក៏បែងចែកភាពស្របគ្នាពីអត្រាសំណើផងដែរ។ សំណើរយៈពេលវែងបួន និងសំណើខ្លីបំផុតបួនប្រើប្រាស់ការបែងចែកភាពស្របគ្នាដូចគ្នា ខណៈដែលផលិតអត្រាសំណើក្នុងមួយវិនាទីខុសៗគ្នា។ សេវាដែលមានគោលនយោបាយអត្រាអាចត្រូវការការកំណត់ចង្វាក់ ឬឧបករណ៍កំណត់អត្រាដាច់ដោយឡែក។
ជ្រើសរើសអត្តសញ្ញាណ proxy ដែលមានស្ថេរភាព និងមិនសម្ងាត់សម្រាប់កំណត់ហេតុ និងម៉ែត្រ។ ប្រសិនបើ URL ពីរដែលផ្ទុកព័ត៌មានសម្គាល់យោងទៅអាងសមត្ថភាពដូចគ្នា សូមសម្រេចថាតើពួកវាគួរចែករំលែកថវិកាមួយឬអត់។ ផ្ទុយទៅវិញ ច្រក ឬគណនីផ្សេងៗគ្នាអាចតំណាងឱ្យដែនកំណត់ដាច់ដោយឡែក នៅពេលប្រតិបត្តិករចងក្រងពួកវាដូច្នេះ។
នៅពេលលំហូរចេញធ្លាក់ចុះ សូមពិនិត្យមើលកន្លែងដែលការងារកំពុងរង់ចាំ៖ semaphore របស់អ្នក ឧបករណ៍តភ្ជាប់ ការរៀបចំតភ្ជាប់ proxy ឬការអានការឆ្លើយតប។ ការលើកដែនកំណត់ទាំងអស់ក្នុងពេលតែមួយធ្វើឱ្យការបែងចែកនោះពិបាកជាង ហើយអាចផ្លាស់ទីជួរទៅ proxy ដែលអ្នកមិនគ្រប់គ្រង។