Guzzle-pyyntö voi aikakatkaista odottaessaan yhteyspaikkaa
Aseta cURL multi -käsittelijän aktiiviset yhteysbudjetit jaettuun käsittelijään ja erota ne käyttämättömän välimuistin kapasiteetista.
Jos asynkroninen pyyntö vanhenee ennen yhteyden avaamista, tarkista verkon aikakatkaisujen lisäksi siirtokerroksen aktiiviset rajat. libcurl asettaa siirrot jonoon, kun nämä rajat ovat käytössä, ja niiden aikakatkaisubudjetit jatkuvat jonossa ollessa.
Guzzle 7:n jaetulle cURL multi -käsittelijälle:
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),
]);Käytä tätä asiakasta asynkroniseen työhön ja anna sen tarkoitettu välityspalvelinasetus toiminnoille. Arvot ovat esimerkkibudjetteja. Julkisen välittäjän kautta sallituille julkisille pyynnöille HTTP-välityspalvelinluettelo tarjoaa ehdokkaita toimintojen välityspalvelin-URL-osoitteille.
| Asetus | Budjetti |
|---|---|
| MAX_TOTAL_CONNECTIONS | Samanaikaisesti avoimet yhteydet multi-käsittelijän alla |
| MAX_HOST_CONNECTIONS | Yhteydet yhteen isäntään/porttiin; välityspalvelinyhteydet lasketaan välityspalvelimen päätepisteeseen |
| MAXCONNECTS | Yhteydet, jotka säilytetään välimuistissa käytön jälkeen |
Useat samaa välityspalvelinta käyttävät verkkosivustot eivät saa automaattisesti erillisiä välityspalvelinyhteyskiintiöitä. Käyttämättömän välimuistin kapasiteetti ei avaa yhteyksiä etukäteen eikä tee niistä keskenään vaihdettavia: uudelleenkäyttö riippuu reitistä, kohteesta, protokollasta ja todennuksesta.
Pidä sovelluksen tehtäväbudjetti ja mahdollinen palveluntarjoajan kiintiö yhdenmukaisina näiden siirtobudjettien kanssa. Ne laskevat yhteyksiä, eivät pyyntöjä sekunnissa. Socketin aikakatkaisun nostaminen ei voi kertoa, kuluttiko ajan jono vai verkon odotus.