Guzzle Pool: प्रत्येक जॉबचा प्रॉक्सी requestAsync ला द्या
प्रॉक्सी पर्याय PSR-7 विनंती संदेश किंवा अडवणाऱ्या फॅक्टरीऐवजी प्रत्येक अतुल्यकालिक ऑपरेशनला जोडा.
प्रत्येक Guzzle जॉबचा प्रॉक्सी पूल सुरू करतो त्या अतुल्यकालिक ऑपरेशनवर ठेवा. विद्यमान क्लायंट सेटअपमध्ये प्रॉमिस फॅक्टरी वापरा:
$operations = function () use ($client, $jobs) {
foreach ($jobs as $id => $job) {
yield $id => function () use ($client, $job) {
return $client->requestAsync('GET', $job['url'], [
'proxy' => $job['proxy'],
'timeout' => 20,
]);
};
}
};
$pool = new GuzzleHttp\Pool($client, $operations(), [
'concurrency' => 4,
]);
$pool->promise()->wait();
प्रत्येक सत्यापित जॉब एक गंतव्य आणि एक प्रॉक्सी पुरवतो. अनुमत सार्वजनिक विनंतीसाठी, HTTP प्रॉक्सी सूचीमधील HTTP उमेदवार त्या जॉबचा क्रेडेन्शियल-मुक्त प्रॉक्सी URL पुरवू शकतो; निवड त्याची फॅक्टरी चालण्यापूर्वी होते. PSR-7 विनंती HTTP संदेशाचे वर्णन करते, तर हे पाठवण्याचे पर्याय वाहतूक नियंत्रित करतात. संदेशाच्या शेजारी प्रॉक्सी मूल्य छापणे किंवा साठवणे अशा ऑपरेशनला कॉन्फिगर करू शकत नाही जे ते दुसऱ्या मार्गाने पाठवते.
फॅक्टरीतून requestAsync() परत करा. तिथे सिंक्रोनस request() कॉल केल्यास पूल एकाचवेळी काम सुरू करण्याचा प्रयत्न करत असताना अडवू शकते.
अॅप्लिकेशनच्या विद्यमान हाताळणीचा वापर करून पूर्ण झालेले आणि नाकारलेले कॉलबॅक जोडा. जॉब की, निवडलेला प्रॉक्सी ओळखकर्ता आणि प्रयत्न क्रमांक दोन्ही निकालांमध्ये ठेवा; पूर्ततेचा क्रम इनपुट क्रमापेक्षा वेगळा असतो. जॉबसाठी एक नोंदवल्यानंतर फॅक्टरीत गुप्तपणे दुसरा एंडपॉइंट निवडू नका.
कन्करन्सी मूल्य या पूलचे काम मर्यादित करते. एकाच मर्यादित प्रॉक्सी किंवा खात्याची निवड करणाऱ्या अनेक जॉबना तरीही त्या एंडपॉइंटसाठी स्वतंत्र बजेट लागू शकते.
निकालांचा टप्प्यानुसार अर्थ लावा: गंतव्य नाकारणे, प्रॉक्सी प्रमाणीकरण आणि कनेक्शन कालबाह्यता वेगवेगळे निकाल आहेत. जॉबसोबत ठेवलेले पाठवण्याचे पर्याय दाखवतात की कोणत्या मार्गाने प्रत्येक निकाल मिळाला.