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() വിളിക്കുന്നത് പൂൾ സമകാലിക ജോലി ആരംഭിക്കാൻ ശ്രമിക്കുമ്പോൾ തടയാം.
പൂർത്തിയായതും നിരസിച്ചതുമായ ഫലങ്ങൾക്ക് ആപ്പിന്റെ നിലവിലുള്ള കൈകാര്യം ഉപയോഗിച്ച് കോൾബാക്കുകൾ ചേർക്കുക. ജോലിയുടെ കീ, തിരഞ്ഞെടുത്ത പ്രോക്സി ഐഡന്റിഫയർ, ശ്രമ നമ്പർ എന്നിവ രണ്ട് ഫലങ്ങളിലും സൂക്ഷിക്കുക; പൂർത്തീകരണ ക്രമം ഇൻപുട്ട് ക്രമത്തിൽ നിന്ന് വ്യത്യസ്തമാണ്. ജോലിക്കായി ഒന്ന് രേഖപ്പെടുത്തിയ ശേഷം ഫാക്ടറിയിൽ രഹസ്യമായി മറ്റൊരു എൻഡ്പോയിന്റ് തിരഞ്ഞെടുക്കരുത്.
സമകാലികതയുടെ മൂല്യം ഈ പൂളിന്റെ ജോലി പരിമിതപ്പെടുത്തുന്നു. ഒരു പരിമിതമായ പ്രോക്സിയോ അക്കൗണ്ടോ തിരഞ്ഞെടുക്കുന്ന നിരവധി ജോലികൾക്ക് ഇപ്പോഴും ആ എൻഡ്പോയിന്റിന് പ്രത്യേക ബജറ്റ് വേണ്ടിവന്നേക്കാം.
ഫലങ്ങൾ ഘട്ടം തിരിച്ച് വ്യാഖ്യാനിക്കുക: ലക്ഷ്യത്തിന്റെ നിരസിക്കൽ, പ്രോക്സി പ്രാമാണീകരണം, കണക്ഷൻ കാലഹരണം എന്നിവ വ്യത്യസ്ത ഫലങ്ങളാണ്. ജോലിയോടൊപ്പം സൂക്ഷിച്ച അയയ്ക്കൽ ഓപ്ഷനുകൾ ഏത് പാതയാണ് ഓരോ ഫലവും നൽകിയതെന്ന് കാണിക്കുന്നു.