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 | उपयोग के बाद कैश में रखे गए कनेक्शन |
एक ही प्रॉक्सी का उपयोग करने वाली कई वेबसाइटों को स्वतः अलग प्रॉक्सी कनेक्शन भत्ते नहीं मिलते। निष्क्रिय कैश क्षमता न तो पहले से कनेक्शन खोलती है और न ही उन्हें परस्पर विनिमेय बनाती है: पुनः उपयोग मार्ग, गंतव्य, प्रोटोकॉल और प्रमाणीकरण पर निर्भर करता है।
एप्लिकेशन कार्य बजट और किसी भी प्रदाता भत्ते को इन ट्रांसपोर्ट बजट के अनुरूप रखें। वे कनेक्शन गिनते हैं, प्रति सेकंड अनुरोध नहीं। सॉकेट टाइमआउट बढ़ाने से यह पहचाना नहीं जा सकता कि कतार ने या नेटवर्क प्रतीक्षा ने समय लिया।