Guzzle суроосу туташуу уясын күтүп жатканда убакыт бүтүшү мүмкүн
cURL multi'нун активдүү туташуу бюджеттерин жалпы handler'де коюп, аларды бош кэш сыйымдуулугунан айырмалаңыз.
Эгер асинхрондук суроо туташуу ачылганга чейин убактысы бүтсө, тармактык таймауттар менен катар ташуучунун активдүү чектерин текшериңиз. Ошол чектер толуп турганда 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_CONNECTIONS | Multi handler астында бир убакта ачык туташуулар |
| MAX_HOST_CONNECTIONS | Бир хост/портко туташуулар; прокси туташуулары прокси акыркы чекитине эсептелет |
| MAXCONNECTS | Колдонгондон кийин кэште калган туташуулар |
Бир проксини колдонгон бир нече веб-сайт автоматтык түрдө өзүнчө прокси туташуу квотасын албайт. Бош кэш сыйымдуулугу туташууларды алдын ала ачпайт жана аларды бири-бирине алмаштырбайт: кайра колдонуу маршрутка, багытка, протоколго жана аутентификацияга көз каранды.
Колдонмонун тапшырма бюджети менен провайдердин каалаган квотасын бул транспорттук бюджеттерге шайкеш кармаңыз. Алар секундасына суроолорду эмес, туташууларды санашат. Socket таймаутун көтөрүү убакытты кезек же тармак күтүүсү коротконун аныктай албайт.