ຄຳຮ້ອງ Guzzle ອາດໝົດເວລາລະຫວ່າງລໍຖ້າບ່ອນເຊື່ອມຕໍ່
ຕັ້ງງົບປະມານການເຊື່ອມຕໍ່ທີ່ເຄື່ອນໄຫວຂອງ cURL multi ໃສ່ handler ຮ່ວມ ແລະ ແຍກມັນອອກຈາກຄວາມອາດສາມາດຂອງ cache ວ່າງ.
ຖ້າຄຳຮ້ອງແບບບໍ່ຊ້ອນກັນໝົດເວລາກ່ອນເປີດການເຊື່ອມຕໍ່ ໃຫ້ກວດຂອບເຂດທີ່ເຄື່ອນໄຫວຂອງການຂົນສົ່ງ ພ້ອມກັບເວລາຈຳກັດຂອງເຄືອຂ່າຍ. ເມື່ອຂອບເຂດເຫຼົ່ານັ້ນເຕັມ libcurl ຈະໃສ່ການໂອນຍ້າຍໃນຄິວ ແລະ ງົບເວລາຂອງພວກມັນຍັງດຳເນີນຕໍ່ໄປໃນຂະນະທີ່ຢູ່ໃນຄິວ.
ສຳລັບ cURL multi handler ຮ່ວມຂອງ 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),
]);ໃຊ້ client ນີ້ສຳລັບວຽກແບບບໍ່ຊ້ອນກັນ ແລະ ໃຫ້ຕົວເລືອກ proxyທີ່ຕັ້ງໃຈໄວ້ກັບການດຳເນີນການ. ຄ່າຕ່າງໆເປັນງົບຕົວຢ່າງ. ສຳລັບຄຳຮ້ອງສາທາລະນະທີ່ໄດ້ຮັບອະນຸຍາດຜ່ານຕົວກາງສາທາລະນະ ລາຍຊື່ proxy HTTP ໃຫ້ຜູ້ສະໝັກສຳລັບ URL proxy ຂອງການດຳເນີນການ.
| ຕົວເລືອກ | ງົບປະມານ |
|---|---|
| MAX_TOTAL_CONNECTIONS | ການເຊື່ອມຕໍ່ທີ່ເປີດພ້ອມກັນພາຍໃຕ້ multi handler |
| MAX_HOST_CONNECTIONS | ການເຊື່ອມຕໍ່ໄປຫາ host/port ດຽວ; ການເຊື່ອມຕໍ່ proxy ນັບໃສ່ປາຍທາງ proxy |
| MAXCONNECTS | ການເຊື່ອມຕໍ່ທີ່ເກັບໄວ້ໃນ cache ຫຼັງຈາກໃຊ້ |
ຫຼາຍເວັບໄຊທີ່ໃຊ້ proxy ດຽວກັນບໍ່ໄດ້ຮັບໂຄຕ້າການເຊື່ອມຕໍ່ proxy ແຍກຕ່າງຫາກໂດຍອັດຕະໂນມັດ. ຄວາມອາດສາມາດຂອງ cache ວ່າງບໍ່ໄດ້ເປີດການເຊື່ອມຕໍ່ລ່ວງໜ້າ ແລະ ບໍ່ໄດ້ເຮັດໃຫ້ມັນແລກປ່ຽນກັນໄດ້: ການໃຊ້ຄືນຂຶ້ນກັບເສັ້ນທາງ ປາຍທາງ ໂປຣໂຕຄອນ ແລະ ການກວດສອບ.
ຮັກສາງົບວຽກຂອງແອັບພລິເຄຊັນ ແລະ ໂຄຕ້າຂອງຜູ້ໃຫ້ບໍລິການໃຫ້ສອດຄ່ອງກັບງົບການຂົນສົ່ງເຫຼົ່ານີ້. ພວກມັນນັບການເຊື່ອມຕໍ່ ບໍ່ແມ່ນຄຳຮ້ອງຕໍ່ວິນາທີ. ການເພີ່ມເວລາຈຳກັດ socket ບໍ່ສາມາດບອກໄດ້ວ່າຄິວ ຫຼື ການລໍຖ້າເຄືອຂ່າຍນັ້ນໃຊ້ເວລາ.