Os yw cais asynchronaidd yn dod i ben cyn agor cysylltiad, archwiliwch derfynau gweithredol y cludiant yn ogystal ag amserau aros y rhwydwaith. Mae libcurl yn ciwio trosglwyddiadau pan fydd y terfynau hynny'n llawn, ac mae eu cyllidebau amser aros yn parhau tra maent yn y ciw.

Ar gyfer handler cURL multi a rennir 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),
]);

Defnyddiwch y cleient hwn ar gyfer y gwaith asynchronaidd a darparwch ei opsiwn procsi arfaethedig ar y gweithrediadau. Mae'r gwerthoedd yn gyllidebau enghreifftiol. Ar gyfer ceisiadau cyhoeddus a ganiateir trwy gyfryngwr cyhoeddus, mae'r rhestr procsi HTTP yn darparu ymgeiswyr ar gyfer URLau procsi'r gweithrediadau.

OpsiwnCyllideb
MAX_TOTAL_CONNECTIONSCysylltiadau a agorir ar yr un pryd o dan y handler multi
MAX_HOST_CONNECTIONSCysylltiadau i un gwesteiwr/porth; mae cysylltiadau procsi yn cyfrif yn erbyn pen y procsi
MAXCONNECTSCysylltiadau a gedwir yn y cache ar ôl eu defnyddio

Nid yw sawl gwefan sy'n defnyddio'r un procsi yn cael lwfansau cysylltiad procsi ar wahân yn awtomatig. Nid yw capasiti'r cache segur yn agor cysylltiadau ymlaen llaw nac yn eu gwneud yn gyfnewidiol: mae ailddefnyddio yn dibynnu ar lwybr, cyrchfan, protocol a dilysu.

Cadwch gyllideb tasgau'r cymhwysiad ac unrhyw lwfans darparwr yn gyson â'r cyllidebau cludiant hyn. Maent yn cyfrif cysylltiadau, nid ceisiadau yr eiliad. Ni all codi amser aros soced nodi ai ciw neu aros rhwydwaith a dreuliodd yr amser.

Erthyglau cysylltiedig