As in asynchroane oanfraach ferrint foardat in ferbining iepene wurdt, ûndersykje dan de aktive limiten fan it transport en ek de netwurk-timeouts. libcurl set oerdrachten yn 'e wachtrige as dy limiten beset binne, en har timeout-budgetten rinne troch wylst se yn 'e rige steane.

Foar de dielde cURL multi-handler fan 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),
]);

Brûk dizze klant foar it asynchroane wurk en jou syn bedoelde proxy-opsje op 'e operaasjes. De wearden binne foarbyldbudgetten. Foar iepenbiere oanfragen dy't tastien binne fia in iepenbiere tuskenpartij, leveret de HTTP-proxylist kandidaten foar de proxy-URL's fan 'e operaasjes.

OpsjeBudget
MAX_TOTAL_CONNECTIONSTagelyk iepene ferbiningen ûnder de multi-handler
MAX_HOST_CONNECTIONSFerbiningen nei ien host/poarte; proxy-ferbiningen telle tsjin it proxy-einpunt
MAXCONNECTSFerbiningen dy't nei gebrûk yn 'e cache bliuwe

Ferskate websiden dy't deselde proxy brûke, krije net automatysk aparte proxy-ferbiningskwota's. De kapasiteit fan 'e idle cache iepenet gjin ferbiningen foarôf en makket se ek net útwikselber: wergebrûk hinget ôf fan rûte, bestimming, protokol en autentikaasje.

Hâld it taakbudget fan 'e applikaasje en in eventuele kwota fan 'e leveransier yn oerienstimming mei dizze transportbudgetten. Se telle ferbiningen, net oanfragen per sekonde. It ferheegjen fan in socket-timeout kin net fêststelle oft in rige of in netwurkwachtsje de tiid brûkt hat.

Relatearre artikelen