Gall cais Guzzle ddod i ben wrth aros am slot cysylltiad
Gosodwch gyllidebau cysylltiadau gweithredol cURL multi ar y handler a rennir a'u gwahaniaethu oddi wrth gapasiti'r cache segur.
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.
| Opsiwn | Cyllideb |
|---|---|
| MAX_TOTAL_CONNECTIONS | Cysylltiadau a agorir ar yr un pryd o dan y handler multi |
| MAX_HOST_CONNECTIONS | Cysylltiadau i un gwesteiwr/porth; mae cysylltiadau procsi yn cyfrif yn erbyn pen y procsi |
| MAXCONNECTS | Cysylltiadau 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.