Egy Guzzle-kérés kapcsolat-helyre várva lejárhat
Állítsa be a cURL multi aktív kapcsolatkereteit a megosztott handleren, és különböztesse meg őket az üres gyorsítótár kapacitásától.
Ha egy aszinkron kérés lejár, mielőtt kapcsolatot nyitna, vizsgálja meg a szállítási réteg aktív korlátait és a hálózati időtúllépéseket is. A libcurl sorba állítja az átviteleket, amikor ezek a korlátok foglaltak, és az időtúllépési kereteik a sorban állás alatt is tovább futnak.
A Guzzle 7 megosztott cURL multi handleréhez:
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),
]);Használja ezt a klienst az aszinkron munkához, és adja meg a szándékolt proxy-beállítást a műveleteken. Az értékek példaértékű keretek. A nyilvános közvetítőn keresztül engedélyezett nyilvános kérésekhez a HTTP-proxylista jelölteket kínál a műveletek proxy URL-jeihez.
| Beállítás | Keret |
|---|---|
| MAX_TOTAL_CONNECTIONS | Egyszerre nyitott kapcsolatok a multi handler alatt |
| MAX_HOST_CONNECTIONS | Kapcsolatok egyetlen hoszthoz/porthoz; a proxykapcsolatok a proxy végpontja ellen számítanak |
| MAXCONNECTS | A használat után a gyorsítótárban megtartott kapcsolatok |
Az ugyanazt a proxyt használó webhelyek nem kapnak automatikusan külön proxykapcsolat-keretet. Az üres gyorsítótár kapacitása sem nyit előre kapcsolatokat, sem nem teszi azokat felcserélhetővé: az újrafelhasználás az útvonaltól, a céltól, a protokolltól és a hitelesítéstől függ.
Tartsa az alkalmazás feladatkeretét és az esetleges szolgáltatói keretet összhangban ezekkel a szállítási keretekkel. Kapcsolatokat számolnak, nem másodpercenkénti kéréseket. A socket időtúllépésének növelése nem tudja megállapítani, hogy sor vagy hálózati várakozás emésztette-e fel az időt.