ຖ້າຄຳຮ້ອງແບບບໍ່ຊ້ອນກັນໝົດເວລາກ່ອນເປີດການເຊື່ອມຕໍ່ ໃຫ້ກວດຂອບເຂດທີ່ເຄື່ອນໄຫວຂອງການຂົນສົ່ງ ພ້ອມກັບເວລາຈຳກັດຂອງເຄືອຂ່າຍ. ເມື່ອຂອບເຂດເຫຼົ່ານັ້ນເຕັມ 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 ບໍ່ສາມາດບອກໄດ້ວ່າຄິວ ຫຼື ການລໍຖ້າເຄືອຂ່າຍນັ້ນໃຊ້ເວລາ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ