Nëse një kërkesë asinkrone skadon përpara se të hapë një lidhje, kontrolloni kufijtë aktivë të transportit si dhe afatet e rrjetit. libcurl i vendos transferimet në radhë kur ata kufij janë të zënë, dhe buxhetet e afateve vazhdojnë ndërsa janë në radhë.

Për handlerin e përbashkët cURL multi të 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),
]);

Përdorni këtë klient për punën asinkrone dhe jepni opsionin e proxy-t të synuar në operacione. Vlerat janë buxhete shembull. Për kërkesat publike të lejuara përmes një ndërmjetësi publik, lista e proxy-ve HTTP ofron kandidatë për URL-të e proxy-t të operacioneve.

OpsionBuxhet
MAX_TOTAL_CONNECTIONSLidhje të hapura njëkohësisht nën handlerin e shumëfishtë
MAX_HOST_CONNECTIONSLidhje drejt një host/pordhe; lidhjet e proxy-t numërohen kundrejt pikës fundore të proxy-t
MAXCONNECTSLidhje që mbahen në cache pas përdorimit

Disa faqe interneti që përdorin të njëjtin proxy nuk marrin automatikisht kuota të veçanta lidhjesh proxy. Kapaciteti i cache-së boshe as hap lidhje paraprakisht as i bën ato të këmbyeshme: ripërdorimi varet nga rruga, destinacioni, protokolli dhe vërtetimi.

Mbajeni buxhetin e detyrave të aplikacionit dhe çdo kuotë të ofruesit në përputhje me këto buxhete transporti. Ato numërojnë lidhje, jo kërkesa për sekondë. Rritja e afatit të socket-it nuk mund të identifikojë nëse koha u konsumua nga një radhë apo një pritje rrjeti.

Artikuj të ngjashëm