Guzzle अनुरोध जडान स्लटको प्रतीक्षामा समय सकिन सक्छ
साझा handler मा cURL multi का सक्रिय जडान बजेट सेट गर्नुहोस् र तिनलाई निष्क्रिय क्यास क्षमताबाट छुट्याउनुहोस्।
यदि कुनै अतुल्यकालिक अनुरोधले जडान खोल्नुअघि नै समय सकियो भने, नेटवर्क टाइमआउटका साथै ट्रान्सपोर्टका सक्रिय सीमाहरू पनि जाँच्नुहोस्। ती सीमा भरिएपछि libcurl ले स्थानान्तरणहरू लाइनमा राख्छ, र लाइनमा रहँदा तिनका टाइमआउट बजेट चलिरहन्छन्।
Guzzle 7 को साझा cURL multi handler का लागि:
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),
]);यो क्लाइन्ट अतुल्यकालिक कामका लागि प्रयोग गर्नुहोस् र सञ्चालनहरूमा यसको अभिप्रेत प्रोक्सी विकल्प दिनुहोस्। मानहरू उदाहरण बजेट हुन्। सार्वजनिक मध्यस्थकर्तामार्फत अनुमति दिइएका सार्वजनिक अनुरोधहरूका लागि, HTTP प्रोक्सी सूची ले सञ्चालनहरूका प्रोक्सी URL का लागि उम्मेदवारहरू दिन्छ।
| विकल्प | बजेट |
|---|---|
| MAX_TOTAL_CONNECTIONS | multi handler अन्तर्गत एकैचोटि खोलिएका जडानहरू |
| MAX_HOST_CONNECTIONS | एउटै होस्ट/पोर्टमा जडानहरू; प्रोक्सी जडानहरू प्रोक्सी एन्डप्वाइन्टविरुद्ध गणना गरिन्छन् |
| MAXCONNECTS | प्रयोगपछि क्यासमा राखिएका जडानहरू |
एउटै प्रोक्सी प्रयोग गर्ने धेरै वेबसाइटहरूले स्वतः छुट्टै प्रोक्सी जडान कोटा पाउँदैनन्। निष्क्रिय क्यास क्षमताले अग्रिम रूपमा जडान खोल्दैन र तिनलाई परस्पर विनिमययोग्य पनि बनाउँदैन: पुनः प्रयोग मार्ग, गन्तव्य, प्रोटोकल र प्रमाणीकरणमा निर्भर गर्दछ।
अनुप्रयोग कार्य बजेट र कुनै पनि प्रदायक कोटालाई यी ट्रान्सपोर्ट बजेटसँग मिलाएर राख्नुहोस्। तिनले जडान गणना गर्छन्, प्रति सेकेन्ड अनुरोध होइन। सकेट टाइमआउट बढाउँदा लाइन वा नेटवर्क प्रतीक्षाले समय खर्च गरेको हो कि होइन पहिचान गर्न सकिँदैन।