cURL одновременных запросов: завершение с ошибкой (7) - CURLE_COUDN'T_CONNECT - PullRequest
0 голосов
/ 30 мая 2018

Мой веб-сайт Используйте Zebra_cURL для получения параллельного запроса. Но при достижении около 500 запросов система начинает возвращать ошибку CURLE_COUDN'T_CONNECT. Я также прочитал некоторые ответы на форумах. Я попробовал некоторые из них. Но не исправить.Пожалуйста, дайте быстрый ответ, если кто-то знает решение этой ошибки.В настоящее время я использую этот код.Предположим, что $com_url_arr_glo Массив уже определен и содержит около 2300 URL.

$curl1 = new Zebra_cURL();

            $curl1->cache('cache', 3600);
            $curl1->option(CURLOPT_CONNECTTIMEOUT, 20);
            $curl1->option(CURLOPT_FOLLOWLOCATION, 1);
            $curl1->ssl(true);

            $curl1->get($com_url_arr_glo, 'getsizemk');

getsizemk - это функция Чтобы получить некоторую информацию внутри каждого URL после завершения очисткидля каждого URL. Это как указано в Документация Zebra cURL .

Это полный массив, который я получаю от Zebra_cURL после ошибки

[info] => Array
    (
        [original_url] => https://www.masterkreatif.com/page/12
        [url] => https://www.masterkreatif.com/page/12
        [content_type] => 
        [http_code] => 0
        [header_size] => 0
        [request_size] => 162
        [filetime] => -1
        [ssl_verify_result] => 0
        [redirect_count] => 0
        [total_time] => 30.109
        [namelookup_time] => 1.0E-6
        [connect_time] => 0.406
        [pretransfer_time] => 0.906
        [size_upload] => 0
        [size_download] => 0
        [speed_download] => 0
        [speed_upload] => 0
        [download_content_length] => -1
        [upload_content_length] => -1
        [starttransfer_time] => 0
        [redirect_time] => 0
        [redirect_url] => 
        [primary_ip] => 104.24.117.230
        [certinfo] => Array
            (
            )

        [primary_port] => 443
        [local_ip] => 192.168.43.56
        [local_port] => 25775
    )

[headers] => Array
    (
        [last_request] => Array
            (
                [0] => Array
                    (
                        [Request Method] => GET /page/12 HTTP/1.1
                        [Host] => www.masterkreatif.com
                        [User-Agent] => Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0)
                        [Accept] => */*
                        [Accept-Encoding] => gzip,deflate
                    )

            )

        [responses] => Array
            (
            )

    )

[body] => 
[response] => Array
    (
        [0] => CURLE_OPERATION_TIMEDOUT
        [1] => 28
    )

ТакжеЗабыл сказать, URL работает очень хорошо!

Ребята! Я нашел решение. Но не знаю, что это применимо для всех типов этой ошибки. Но все яЭто просто добавление 5 секундной задержки между всеми обработанными 30 пакетами URL.Это все равно исправило эту ошибку.Спасибо, ребята за все комментарии!Все, что я добавил, это

$curl->pause_interval = 5;
$curl->threads = 30;

(Это для Zebra_cURL)

1 Ответ

0 голосов
/ 31 мая 2018

Сервер может воспринимать ваше большое количество запросов как атаку и просто отказывается обслуживать вас.

Быстрое решение заключается в добавлении небольшой задержки между выполнением каждого запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...