Një kërkesë Guzzle mund të skadojë duke pritur për një vend lidhjeje
Vendosni buxhetet aktive të lidhjeve të cURL multi në handlerin e përbashkët dhe dallojini ato nga kapaciteti i cache-së boshe.
Nëse një kërkesë asinkrone skadon përpara se të hapë një lidhje, kontrolloni kufijtë aktivë të transportit si dhe afatet e rrjetit. libcurl i vendos transferimet në radhë kur ata kufij janë të zënë, dhe buxhetet e afateve vazhdojnë ndërsa janë në radhë.
Për handlerin e përbashkët cURL multi të Guzzle 7:
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),
]);Përdorni këtë klient për punën asinkrone dhe jepni opsionin e proxy-t të synuar në operacione. Vlerat janë buxhete shembull. Për kërkesat publike të lejuara përmes një ndërmjetësi publik, lista e proxy-ve HTTP ofron kandidatë për URL-të e proxy-t të operacioneve.
| Opsion | Buxhet |
|---|---|
| MAX_TOTAL_CONNECTIONS | Lidhje të hapura njëkohësisht nën handlerin e shumëfishtë |
| MAX_HOST_CONNECTIONS | Lidhje drejt një host/pordhe; lidhjet e proxy-t numërohen kundrejt pikës fundore të proxy-t |
| MAXCONNECTS | Lidhje që mbahen në cache pas përdorimit |
Disa faqe interneti që përdorin të njëjtin proxy nuk marrin automatikisht kuota të veçanta lidhjesh proxy. Kapaciteti i cache-së boshe as hap lidhje paraprakisht as i bën ato të këmbyeshme: ripërdorimi varet nga rruga, destinacioni, protokolli dhe vërtetimi.
Mbajeni buxhetin e detyrave të aplikacionit dhe çdo kuotë të ofruesit në përputhje me këto buxhete transporti. Ato numërojnë lidhje, jo kërkesa për sekondë. Rritja e afatit të socket-it nuk mund të identifikojë nëse koha u konsumua nga një radhë apo një pritje rrjeti.