🛞 Как ускорить массовую отправку HTTP-запросов в PHP
Постановка задачи:
Есть скрипт на PHP, который должен отправлять множество HTTP-запросов. Нужно сделать это как можно быстрее. Очевидное решение — параллельная отправка.
1⃣ последовательная обработка
Простой цикл с
curl_init() и curl_exec() на каждый URL. Результат: 10 запросов выполняются за ~4.4 секунды.2⃣ повторное использование curl-хэндла
Инициализируем
curl один раз и переиспользуем. Время выполнения снижается до ~1.7 секунды.3⃣ параллельная отправка с curl_multi_
Используем
curl_multi_init() и запускаем запросы одновременно. Итог: всего 0.5 секунды на 10 запросов. Почти в 9 раз быстрее, чем изначально.4⃣ отправка батчами (batching)
Если запросов сотни или тысячи, одновременно всё не потянет даже мощный сервер. Решение — отправка пакетами, например по 3. Это позволяет контролировать нагрузку. В нашем примере — ~0.8 секунды на 10 запросов.
Читать статью
👉Новости 👉База вопросов
