Python 3.14 Executor.map buffersize សម្រាប់បាច់ព្រីកស៊ីធំ
ប្រើ Python 3.14 Executor.map buffersize ដើម្បីផ្អាកការប្រើប្រាស់ធាតុបញ្ចូល ខណៈដែលលទ្ធផលកំពុងរង់ចាំ ដោយឯករាជ្យពី max_workers។
max_workers=8 កំណត់ចំនួនខ្សែស្រឡាយដែលដំណើរការ។ ប៉ុន្តែវាមិនរារាំងរង្វិលជុំដាក់ស្នើដាច់ដោយឡែកពីបង្កើត Future សម្រាប់ចំណុចបញ្ចប់នីមួយៗក្នុងធាតុបញ្ចូលដ៏ធំនោះទេ។
Python 3.14 បន្ថែមជម្រើសអានជាមុនដែលមានកំណត់៖
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(max_workers=8) as executor:
for result in executor.map(check_proxy, endpoints, buffersize=24):
record_result(result)check_proxy គឺជាការត្រួតពិនិត្យសមកាលដែលមានស្រាប់ ជាមួយកាលកំណត់បណ្តាញ និងការសម្អាត; record_result គ្រប់គ្រងការសង្កេតដែលវាត្រឡប់មកវិញ។ តម្លៃ 8 និង 24 គឺជាថវិកាឧទាហរណ៍។ បញ្ជីព្រីកស៊ីឥតគិតថ្លៃ ផ្តល់បេក្ខជនសាធារណៈសម្រាប់ចំណុចបញ្ចប់; រក្សាពិធីការរបស់ពួកវាជាមួយអាសយដ្ឋាននីមួយៗ ដើម្បីឱ្យ check_proxy អាចប្រើការដឹកជញ្ជូនត្រឹមត្រូវ។
នៅពេលបណ្តុំសម្រាប់ដាក់ស្នើពេញ នោះ map ផ្អាកការប្រើប្រាស់ធាតុដែលអាចធ្វើម្តងទៀត រហូតដល់លទ្ធផលត្រូវបានផ្តល់។ នេះក៏អនុវត្តចំពោះម៉ាស៊ីនបង្កើតដែរ។
map នៅតែផ្តល់តាមលំដាប់ធាតុបញ្ចូល៖ ការត្រួតពិនិត្យដំបូងយឺតអាចរក្សាលទ្ធផលបន្ទាប់ដែលបានបញ្ចប់ហើយ និងធ្វើឱ្យធាតុបញ្ចូលបន្ថែមយឺត។ សម្រាប់ដំណើរការតាមលំដាប់បញ្ចប់ សូមប្រើសំណុំ futures ដែលមានកំណត់ច្បាស់លាស់ ហើយបំពេញឡើងវិញនៅពេលពួកវាបញ្ចប់។
ដោះស្រាយការបរាជ័យបណ្តាញដែលរំពឹងទុកនៅក្នុងការត្រួតពិនិត្យ ប្រសិនបើបាច់ត្រូវបន្តផ្តល់លទ្ធផល។ ករណីលើកលែងដែលមិនបានដោះស្រាយត្រូវបានលើកឡើងនៅពេលធាតុនោះត្រូវបានយក។ chunksize នៅក្នុង ThreadPoolExecutor មិនផ្តល់ថវិកាដាក់ស្នើនេះទេ ហើយកំណែ Python មុនៗមិនមាន buffersize ទេ។