Guzzle sorğusu bağlantı yuvası gözləyərkən vaxtı bitə bilər
Paylaşılan handler-də cURL multi-nin aktiv bağlantı büdcələrini təyin edin və onları boş keş tutumundan fərqləndirin.
Asinxron sorğu bağlantı açılmadan əvvəl vaxtı bitirsə, şəbəkə taymautları ilə yanaşı transportun aktiv limitlərini də yoxlayın. Bu limitlər dolu olduqda libcurl ötürmələri növbəyə qoyur və növbədə olarkən onların taymaut büdcələri davam edir.
Guzzle 7-nin paylaşılan cURL multi handler-i üçün:
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 klienti asinxron iş üçün istifadə edin və əməliyyatlarda onun nəzərdə tutulan proksi seçimini təqdim edin. Dəyərlər nümunə büdcələrdir. Açıq vasitəçi ilə icazə verilən açıq sorğular üçün HTTP proksi siyahısı əməliyyatların proksi URL-ləri üçün namizədlər verir.
| Seçim | Büdcə |
|---|---|
| MAX_TOTAL_CONNECTIONS | Multi handler altında eyni vaxtda açıq bağlantılar |
| MAX_HOST_CONNECTIONS | Bir host/porta bağlantılar; proksi bağlantıları proksi son nöqtəsinə aid sayılır |
| MAXCONNECTS | İstifadədən sonra keşdə saxlanılan bağlantılar |
Eyni proksidən istifadə edən bir neçə vebsayt avtomatik olaraq ayrı proksi bağlantı icazəsi almır. Boş keş tutumu nə əvvəlcədən bağlantı açır, nə də onları bir-birini əvəz edən edir: təkrar istifadə marşrutdan, təyinatdan, protokoldan və autentifikasiyadan asılıdır.
Tətbiqin tapşırıq büdcəsini və hər hansı provayder icazəsini bu transport büdcələri ilə uyğun saxlayın. Onlar saniyədə sorğu deyil, bağlantı sayır. Soket taymautunu artırmaq növbənin yoxsa şəbəkə gözləməsinin vaxtı sərf etdiyini müəyyən edə bilməz.