Kung ang isang async na kahilingan ay mag-expire bago magbukas ng koneksyon, suriin ang aktibong limitasyon ng transport bukod sa mga timeout ng network. Inilalagay ng libcurl sa pila ang mga paglilipat kapag puno ang mga limitasyong iyon, at nagpapatuloy ang mga badyet ng timeout habang nakapila.

Para sa shared cURL multi handler ng 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),
]);

Gamitin ang client na ito para sa async na trabaho at ibigay ang nilalayong opsyon sa proxy sa mga operasyon. Ang mga halaga ay halimbawang badyet. Para sa mga pampublikong kahilingang pinapayagan sa pamamagitan ng pampublikong intermediary, ang listahan ng proxy sa HTTP ay nagbibigay ng mga kandidato para sa mga proxy URL ng mga operasyon.

OpsyonBadyet
MAX_TOTAL_CONNECTIONSMga koneksyong bukas nang sabay sa ilalim ng multi handler
MAX_HOST_CONNECTIONSMga koneksyon sa isang host/port; ang mga koneksyon ng proxy ay binibilang laban sa endpoint ng proxy
MAXCONNECTSMga koneksyong pinananatili sa cache pagkatapos gamitin

Ang ilang website na gumagamit ng parehong proxy ay hindi awtomatikong tumatanggap ng hiwalay na kota ng koneksyon ng proxy. Ang kapasidad ng idle cache ay hindi nagbubukas ng koneksyon nang maaga at hindi ginagawang mapagpapalit ang mga ito: ang muling paggamit ay nakasalalay sa ruta, destinasyon, protocol at authentication.

Panatilihing naaayon ang badyet ng gawain ng application at anumang kota ng provider sa mga badyet ng transport na ito. Binibilang nila ang mga koneksyon, hindi ang mga kahilingan bawat segundo. Ang pagtaas ng timeout ng socket ay hindi matukoy kung pila o paghihintay ng network ang gumamit ng oras.

Kaugnay na mga artikulo