Pokud asynchronní požadavek vyprší dříve, než otevře připojení, zkontrolujte aktivní limity transportu i síťové časové limity. libcurl řadí přenosy do fronty, když jsou tyto limity obsazené, a jejich rozpočty časového limitu běží i ve frontě.

Pro sdílený 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),
]);

Tento klient použijte pro asynchronní práci a u operací zadejte zamýšlenou volbu proxy. Hodnoty jsou příkladové rozpočty. Pro veřejné požadavky povolené přes veřejného prostředníka nabízí seznam HTTP proxy kandidáty pro proxy URL operací.

VolbaRozpočet
MAX_TOTAL_CONNECTIONSSoučasně otevřená připojení pod multi handlerem
MAX_HOST_CONNECTIONSPřipojení k jednomu hostiteli/portu; proxy připojení se počítají proti koncovému bodu proxy
MAXCONNECTSPřipojení ponechaná v cache po použití

Několik webů používajících stejnou proxy automaticky nedostává samostatné kvóty proxy připojení. Kapacita nečinné cache ani neotevírá připojení předem, ani je nečiní zaměnitelnými: opětovné použití závisí na trase, cíli, protokolu a ověření.

Udržujte rozpočet úloh aplikace a případnou kvótu poskytovatele v souladu s těmito transportními rozpočty. Počítají připojení, ne požadavky za sekundu. Zvýšení časového limitu soketu nedokáže určit, zda čas spotřebovala fronta, nebo čekání na síť.

Související články