Če asinhrona zahteva poteče, preden odpre povezavo, preglejte aktivne omejitve transporta ter tudi omrežne časovne omejitve. libcurl postavi prenose v čakalno vrsto, ko so te omejitve zasedene, njihovi proračuni časovne omejitve pa tečejo tudi med čakanjem v vrsti.

Za skupni 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),
]);

Ta odjemalec uporabite za asinhrono delo in pri operacijah navedite predvideno možnost proxyja. Vrednosti so zgledni proračuni. Za javne zahteve, dovoljene prek javnega posrednika, seznam proxyjev HTTP ponuja kandidate za proxy URL-je operacij.

MožnostProračun
MAX_TOTAL_CONNECTIONSHkrati odprte povezave pod multi handlerjem
MAX_HOST_CONNECTIONSPovezave do enega gostitelja/vrat; proxy povezave se štejejo proti končni točki proxyja
MAXCONNECTSPovezave, ki ostanejo v predpomnilniku po uporabi

Več spletnih mest, ki uporablja isti proxy, samodejno ne dobi ločenih kvot proxy povezav. Zmogljivost nedejavnega predpomnilnika ne odpira povezav vnaprej in jih ne naredi zamenljivih: ponovna uporaba je odvisna od poti, cilja, protokola in preverjanja pristnosti.

Proračun opravil aplikacije in morebitno kvoto ponudnika ohranjajte v skladu s temi transportnimi proračuni. Štejejo povezave, ne zahtev na sekundo. Povečanje časovne omejitve vtičnice ne more ugotoviti, ali je čas porabila čakalna vrsta ali omrežno čakanje.

Sorodni članki