Guzzle zahtjev može isteći dok čeka mjesto za vezu
Postavite aktivne proračune veza cURL multi na zajednički handler i razlikujte ih od kapaciteta neaktivnog predmemorija.
Ako asinkroni zahtjev istekne prije otvaranja veze, provjerite aktivne limite prijenosa kao i mrežne rokove. libcurl stavlja prijenose u red kada su ti limiti zauzeti, a njihovi rokovi proračuna teku i dok čekaju u redu.
Za zajednički cURL multi handler 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),
]);Koristite ovaj klijent za asinkroni rad i na operacijama navedite njegovu predviđenu opciju proxyja. Vrijednosti su primjerni proračuni. Za javne zahtjeve dopuštene kroz javnog posrednika, popis HTTP proxyja nudi kandidate za proxy URL-ove operacija.
| Opcija | Proračun |
|---|---|
| MAX_TOTAL_CONNECTIONS | Istodobno otvorene veze pod multi handlerom |
| MAX_HOST_CONNECTIONS | Veze prema jednom hostu/portu; proxy veze se računaju prema proxy završnoj točki |
| MAXCONNECTS | Veze zadržane u predmemoriju nakon upotrebe |
Nekoliko web-mjesta koja koriste isti proxy ne dobiva automatski odvojene kvote proxy veza. Kapacitet neaktivnog predmemorija niti unaprijed otvara veze niti ih čini zamjenjivima: ponovna upotreba ovisi o ruti, odredištu, protokolu i autentifikaciji.
Držite proračun zadataka aplikacije i eventualnu kvotu pružatelja usklađene s ovim prometnim proračunima. Oni broje veze, a ne zahtjeve u sekundi. Povećanje roka soketa ne može utvrditi je li vrijeme potrošio red ili mrežno čekanje.