សំណើ Guzzle អាចផុតកំណត់ពេលរង់ចាំចន្លោះតភ្ជាប់
កំណត់ថវិកាតភ្ជាប់សកម្មរបស់ cURL multi នៅលើ handler រួម ហើយបែងចែកវាពីសមត្ថភាពឃ្លាំងសម្ងាត់ទំនេរ។
បើសំណើអសមកាលផុតកំណត់មុនពេលបើកការតភ្ជាប់ សូមពិនិត្យដែនកំណត់សកម្មរបស់ការដឹកជញ្ជូន ព្រមទាំងពេលផុតកំណត់បណ្តាញ។ libcurl ដាក់ការផ្ទេរក្នុងជួរនៅពេលដែនកំណត់ទាំងនោះពេញ ហើយថវិកាពេលផុតកំណត់របស់វាបន្តដំណើរការពេលនៅក្នុងជួរ។
សម្រាប់ cURL multi handler រួមរបស់ Guzzle 7៖
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Handler\CurlMultiHandler;
$multi = new CurlMultiHandler([
'options' => [
CURLMOPT_MAX_TOTAL_CONNECTIONS => 24,
CURLMOPT_MAX_HOST_CONNECTIONS => 4,
],
]);
$client = new Client([
'handler' => HandlerStack::create($multi),
]);ប្រើ client នេះសម្រាប់ការងារអសមកាល ហើយផ្តល់ជម្រើសប្រូកស៊ីដែលបានបម្រុងទុករបស់វានៅលើប្រតិបត្តិការ។ តម្លៃទាំងនេះជាថវិកាឧទាហរណ៍។ សម្រាប់សំណើសាធារណៈដែលអនុញ្ញាតតាមរយៈអន្តរការីសាធារណៈ បញ្ជីប្រូកស៊ី HTTP ផ្តល់បេក្ខជនសម្រាប់ URL ប្រូកស៊ីរបស់ប្រតិបត្តិការ។
| ជម្រើស | ថវិកា |
|---|---|
| MAX_TOTAL_CONNECTIONS | ការតភ្ជាប់បើកក្នុងពេលតែមួយក្រោម multi handler |
| MAX_HOST_CONNECTIONS | ការតភ្ជាប់ទៅ host/port មួយ; ការតភ្ជាប់ប្រូកស៊ីរាប់បញ្ចូលលើចំណុចចុងក្រោយប្រូកស៊ី |
| MAXCONNECTS | ការតភ្ជាប់ដែលរក្សាទុកក្នុងឃ្លាំងសម្ងាត់បន្ទាប់ពីប្រើ |
គេហទំព័រជាច្រើនដែលប្រើប្រូកស៊ីដូចគ្នាមិនទទួលបានកូតាតភ្ជាប់ប្រូកស៊ីដាច់ដោយឡែកដោយស្វ័យប្រវត្តិទេ។ សមត្ថភាពឃ្លាំងសម្ងាត់ទំនេរមិនបើកការតភ្ជាប់ជាមុន ហើយក៏មិនធ្វើឱ្យវាអាចជំនួសគ្នាបានដែរ៖ ការប្រើឡើងវិញអាស្រ័យលើផ្លូវ គោលដៅ ពិធីការ និងការផ្ទៀងផ្ទាត់។
រក្សាថវិកាកិច្ចការរបស់កម្មវិធី និងកូតាអ្នកផ្តល់សេវាណាមួយឱ្យស៊ីគ្នានឹងថវិកាដឹកជញ្ជូនទាំងនេះ។ ពួកវារាប់ការតភ្ជាប់ មិនមែនសំណើក្នុងមួយវិនាទី។ ការបង្កើនពេលផុតកំណត់ socket មិនអាចកំណត់ថាជួរ ឬការរង់ចាំបណ្តាញបានប្រើពេលឬអត់។