Как Guzzle отправляет асинхронные веб-запросы?
cURL
это синхронно. Итак, как библиотеки любят жрать отправлять асинхронные веб-запросы?
2 ответов
одним из жратьтранспорт обработчики CurlMultiHandler
который использует PHP curl_multi_*
функции, которые допускают асинхронные передачи.
запросы запускаются асинхронно и функция curl_multi_select()
позволяет Guzzle
ждать, пока один из запросов curl не получит данные и не обработает их.
на Жрать CurlMultiHander обертывания PHP встроенный curl_multi_* функция, которая по существу обернуть cURL Multi API
из документов cURL:
чтобы использовать мультиинтерфейс, необходимо сначала создать "мульти дескриптор" с помощью curl_multi_init. Этот дескриптор затем используется в качестве входных данных для всех дальнейших функций curl_multi_*.
с multi ручкой и multi интерфейсом вы можете сделать несколько одновременные переводы параллельно. Каждая передача построена вокруг простой ручкой. Вы создаете все простые ручки, которые вам нужны, и настраиваете соответствующие параметры для каждой простой ручки с помощью curl_easy_setopt.