Guzzle so'rovi ulanish o'rnini kutayotganda vaqti tugashi mumkin
cURL multi'ning faol ulanish budjetlarini umumiy handlerda belgilang va ularni bo'sh kesh sig'imidan ajrating.
Agar asinxron so'rov ulanish ochilishidan oldin vaqti tugasa, tarmoq taymautlari bilan birga transportning faol chegaralarini ham tekshiring. Bu chegaralar band bo'lganda libcurl uzatishlarni navbatga qo'yadi va ularning taymaut budjetlari navbatda turganda davom etadi.
Guzzle 7'ning umumiy cURL multi handleri uchun:
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),
]);Bu klientni asinxron ish uchun ishlating va operatsiyalarda uning mo'ljallangan proksi parametrini bering. Qiymatlar namuna budjetlar. Ommaviy vositachi orqali ruxsat etilgan ommaviy so'rovlar uchun HTTP proksi ro'yxati operatsiyalarning proksi URL'lari uchun nomzodlar beradi.
| Parametr | Budjet |
|---|---|
| MAX_TOTAL_CONNECTIONS | Multi handler ostida bir vaqtda ochilgan ulanishlar |
| MAX_HOST_CONNECTIONS | Bitta host/portga ulanishlar; proksi ulanishlari proksi so'nggi nuqtasiga hisoblanadi |
| MAXCONNECTS | Ishlatilgandan keyin keshda saqlanadigan ulanishlar |
Bir xil proksidan foydalanadigan bir nechta veb-sayt avtomatik ravishda alohida proksi ulanish kvotalarini olmaydi. Bo'sh kesh sig'imi ulanishlarni oldindan ochmaydi va ularni bir-biriga almashtiriladigan qilmaydi: qayta foydalanish marshrut, manzil, protokol va autentifikatsiyaga bog'liq.
Ilova vazifalari budjetini va provayderning har qanday kvotasini ushbu transport budjetlariga mos tuting. Ular soniyada so'rovni emas, ulanishlarni sanaydi. Socket taymautini oshirish vaqtni navbat yoki tarmoq kutishi sarflaganini aniqlay olmaydi.