Ein Guzzle-førespurnad kan gå ut på tid medan han ventar på ein tilkoplingsplass
Set dei aktive tilkoplingsbudsjetta til cURL multi på den delte handleren, og skil dei frå kapasiteten til den ledige bufferen.
Viss ein asynkron førespurnad går ut på tid før han opnar ei tilkopling, undersøk dei aktive grensene til transporten og nettverkstidsgrensene. libcurl set overføringar i kø når desse grensene er opptekne, og tidsbudsjetta deira held fram medan dei står i kø.
For den delte cURL multi-handleren til 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),
]);Bruk denne klienten til det asynkrone arbeidet, og oppgi den tiltenkte proxyinnstillinga på operasjonane. Verdiane er døme på budsjett. For offentlege førespurnader som er tillatne via ein offentleg mellommann, gir HTTP-proxylista kandidatar til proxy-URL-ane til operasjonane.
| Innstilling | Budsjett |
|---|---|
| MAX_TOTAL_CONNECTIONS | Samtidig opne tilkoplingar under multi-handleren |
| MAX_HOST_CONNECTIONS | Tilkoplingar til ein vert/port; proxy-tilkoplingar blir talde mot proxy-endepunktet |
| MAXCONNECTS | Tilkoplingar som blir haldne i bufferen etter bruk |
Fleire nettstader som bruker same proxy får ikkje automatisk separate proxy-tilkoplingskvotar. Kapasiteten til den ledige bufferen opnar korkje tilkoplingar på førehand eller gjer dei utskiftbare: gjenbruk er avhengig av rute, mål, protokoll og autentisering.
Hald oppgåvebudsjettet til applikasjonen og ein eventuell leverandørkvote i samsvar med desse transportbudsjetta. Dei tel tilkoplingar, ikkje førespurnader per sekund. Å auke ein socket-tidsgrense kan ikkje avgjere om ei kø eller ei nettverksventing brukte tida.