Эгер асинхрондук суроо туташуу ачылганга чейин убактысы бүтсө, тармактык таймауттар менен катар ташуучунун активдүү чектерин текшериңиз. Ошол чектер толуп турганда 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 таймаутун көтөрүү убакытты кезек же тармак күтүүсү коротконун аныктай албайт.

Тектеш макалалар