Guzzle захтев може истећи док чека место за везу
Подесите активне буџете веза cURL multi на дељеном handler-у и разликујте их од капацитета неактивног кеша.
Ако асинхрони захтев истекне пре отварања везе, проверите активна ограничења транспорта као и мрежне тајмауте. 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),
]);Користите овај клијент за асинхрони рад и на операцијама наведите његову предвиђену опцију проксија. Вредности су примерни буџети. За јавне захтеве дозвољене кроз јавни посредник, листа HTTP проксија нуди кандидате за прокси URL-ове операција.
| Опција | Буџет |
|---|---|
| MAX_TOTAL_CONNECTIONS | Истовремено отворене везе под multi handler-ом |
| MAX_HOST_CONNECTIONS | Везе према једном хосту/порту; прокси везе се рачунају према прокси крајњој тачки |
| MAXCONNECTS | Везе задржане у кешу након употребе |
Неколико веб локација које користе исти прокси не добијају аутоматски одвојене дозволе за прокси везе. Капацитет неактивног кеша нити унапред отвара везе нити их чини заменљивим: поновна употреба зависи од руте, одредишта, протокола и аутентификације.
Држите буџет задатака апликације и евентуалну дозволу провајдера усклађене са овим транспортним буџетима. Они броје везе, а не захтеве у секунди. Повећање тајмаута сокета не може утврдити да ли је време потрошио ред или мрежно чекање.