Ako asinhroni zahtjev istekne prije otvaranja veze, provjerite aktivne limite transporta kao i mrežne tajmaute. libcurl stavlja prijenose u red kada su ti limiti zauzeti, a njihovi budžeti tajmauta nastavljaju teći dok su u redu.

Za dijeljeni 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 asinhroni rad i na operacijama navedite njegovu predviđenu opciju proxyja. Vrijednosti su primjerni budžeti. Za javne zahtjeve dopuštene kroz javni posrednik, lista HTTP proxyja nudi kandidate za proxy URL-ove operacija.

OpcijaBudžet
MAX_TOTAL_CONNECTIONSIstovremeno otvorene veze pod multi handlerom
MAX_HOST_CONNECTIONSVeze prema jednom hostu/portu; proxy veze se računaju prema proxy krajnjoj točki
MAXCONNECTSVeze zadržane u kešu nakon upotrebe

Nekoliko web stranica koje koriste isti proxy ne dobija automatski odvojene dozvole za proxy veze. Kapacitet neaktivnog keša niti unaprijed otvara veze niti ih čini zamjenjivim: ponovna upotreba zavisi od rute, odredišta, protokola i autentifikacije.

Držite budžet zadataka aplikacije i eventualnu dozvolu provajdera usklađene s ovim transportnim budžetima. Oni broje veze, a ne zahtjeve u sekundi. Povećanje socket tajmauta ne može utvrditi da li je vrijeme potrošio red ili mrežno čekanje.

Povezani članci