Хэрэв асинхрон хүсэлт холболт нээхээс өмнө хугацаа дууссан бол сүлжээний хугацааны хязгаараас гадна тээврийн идэвхтэй хязгаарыг шалгаарай. Эдгээр хязгаар дүүрсэн үед libcurl дамжуулалтыг дараалалд оруулж, дараалалд байх хугацаанд нь тэдний хугацааны төсөв үргэлжилнэ.

Guzzle 7-ийн хуваалцсан cURL multi handler-ийн хувьд:

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),
]);

Энэ клиентийг асинхрон ажилд ашиглаж, үйлдлүүдэд түүний зориулсан прокси сонголтыг өгөөрэй. Утгууд нь жишээ төсөв юм. Нийтийн зуучлагчаар зөвшөөрөгдсөн нийтийн хүсэлтүүдэд HTTP прокси жагсаалт үйлдлүүдийн прокси URL-д нэр дэвшигчдийг санал болгодог.

СонголтТөсөв
MAX_TOTAL_CONNECTIONSMulti handler-ийн дор нэгэн зэрэг нээгдсэн холболт
MAX_HOST_CONNECTIONSНэг хост/порт руу чиглэсэн холболт; прокси холболт нь прокси төгсгөлийн цэгт тооцогдоно
MAXCONNECTSАшигласны дараа кэшэд үлдэх холболт

Нэг прокси ашигладаг хэд хэдэн вэбсайт автоматаар тусдаа прокси холболтын квот авахгүй. Идэвхгүй кэшийн багтаамж холболтыг урьдчилан нээхгүй бөгөөд тэдгээрийг харилцан сольж болохоор болгодоггүй: дахин ашиглалт нь маршрут, очих газар, протокол, баталгаажуулалтаас хамаарна.

Аппликейшны даалгаврын төсөв болон нийлүүлэгчийн квотыг эдгээр тээврийн төсөвтэй нийцүүлэн байлгаарай. Тэд секундэд хүсэлт биш, холболтыг тоолдог. Socket-ийн хугацааны хязгаарыг өсгөх нь дараалал эсвэл сүлжээний хүлээлт цагийг зарцуулсан эсэхийг тодорхойлж чадахгүй.

Холбоотой нийтлэлүүд