Požiadavka Guzzle môže vypršať pri čakaní na slot pripojenia
Nastavte aktívne rozpočty pripojení cURL multi na zdieľanom handleri a odlíšte ich od kapacity nečinnej cache.
Ak asynchrónna požiadavka vyprší pred otvorením pripojenia, skontrolujte aktívne limity transportu aj sieťové časové limity. libcurl zaraďuje prenosy do frontu, keď sú tieto limity obsadené, a ich rozpočty časového limitu plynú ďalej aj vo fronte.
Pre zdieľaný 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žite na asynchrónnu prácu a pri operáciách zadajte zamýšľanú voľbu proxy. Hodnoty sú príkladové rozpočty. Pre verejné požiadavky povolené cez verejného sprostredkovateľa ponúka zoznam HTTP proxy kandidátov pre proxy URL operácií.
| Voľba | Rozpočet |
|---|---|
| MAX_TOTAL_CONNECTIONS | Súčasne otvorené pripojenia pod multi handlerom |
| MAX_HOST_CONNECTIONS | Pripojenia k jednému hostiteľovi/portu; proxy pripojenia sa počítajú voči koncovému bodu proxy |
| MAXCONNECTS | Pripojenia ponechané v cache po použití |
Niekoľko webov používajúcich rovnakú proxy automaticky nedostáva samostatné kvóty proxy pripojení. Kapacita nečinnej cache ani neotvára pripojenia vopred, ani ich nerobí zameniteľnými: opätovné použitie závisí od trasy, cieľa, protokolu a overenia.
Udržujte rozpočet úloh aplikácie a prípadnú kvótu poskytovateľa v súlade s týmito transportnými rozpočtami. Počítajú pripojenia, nie požiadavky za sekundu. Zvýšenie časového limitu soketu nedokáže určiť, či čas spotreboval front alebo čakanie na sieť.