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 | ഉപയോഗത്തിന് ശേഷം കാഷിൽ നിലനിർത്തുന്ന കണക്ഷനുകൾ |
ഒരേ പ്രോക്സി ഉപയോഗിക്കുന്ന നിരവധി വെബ്സൈറ്റുകൾക്ക് സ്വയമേവ വെവ്വേറെ പ്രോക്സി കണക്ഷൻ ക്വോട്ടകൾ ലഭിക്കുന്നില്ല. നിഷ്ക്രിയ കാഷ് ശേഷി മുൻകൂട്ടി കണക്ഷനുകൾ തുറക്കുന്നില്ല, അവ പരസ്പരം മാറ്റാവുന്നതുമാക്കുന്നില്ല: പുനരുപയോഗം റൂട്ട്, ലക്ഷ്യം, പ്രോട്ടോക്കോൾ, പ്രാമാണീകരണം എന്നിവയെ ആശ്രയിച്ചിരിക്കുന്നു.
ആപ്ലിക്കേഷൻ ജോലി ബജറ്റും ദാതാവിന്റെ ക്വോട്ടയും ഈ ട്രാൻസ്പോർട്ട് ബജറ്റുകളുമായി പൊരുത്തപ്പെടുത്തി നിലനിർത്തുക. അവ കണക്ഷനുകളാണ് കണക്കാക്കുന്നത്, സെക്കൻഡിലെ അഭ്യർത്ഥനകളല്ല. സോക്കറ്റ് ടൈംഔട്ട് കൂട്ടിയാൽ ക്യൂവോ നെറ്റ്വർക്ക് കാത്തിരിപ്പോ സമയം ചെലവഴിച്ചത് ഏതാണെന്ന് തിരിച്ചറിയാനാവില്ല.