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 | वापरानंतर कॅशमध्ये ठेवलेली कनेक्शन |
एकाच प्रॉक्सीचा वापर करणाऱ्या अनेक वेबसाइट्सना स्वयंचलितपणे वेगळे प्रॉक्सी कनेक्शन कोटे मिळत नाहीत. निष्क्रिय कॅश क्षमता आधीच कनेक्शन उघडत नाही किंवा त्यांना परस्पर बदलण्यायोग्य करत नाही: पुनर्वापर मार्ग, गंतव्य, प्रोटोकॉल आणि प्रमाणीकरणावर अवलंबून असतो.
अनुप्रयोग कार्य बजेट आणि कोणतेही प्रदाता कोटे या ट्रान्सपोर्ट बजेटशी सुसंगत ठेवा. ते कनेक्शन मोजतात, प्रति सेकंद विनंत्या नाही. सॉकेट टाइमआउट वाढवून रांग किंवा नेटवर्क प्रतीक्षेने वेळ घेतला हे ओळखता येत नाही.