Модуль bwshare и очистка PHP

Я написал скрипт загрузки списка страниц с сайта. Время от времени я получаю следующую ошибку (количество секунд является переменным):

Модуль bwshare отклонит ваши запросы в течение следующих 7 секунд. Вы загрузили данные слишком быстро.

Я обнаружил, что при использовании sleep(2) в цикле, он работает намного лучше, однако задержка слишком дорогая. Как лучше всего обращаться с этим модулем? Должен ли я очистить его без каких-либо задержек, и если ответ будет аналогичен приведенному выше сообщению, просто используйте sleep для запрошенного количества секунд?

2 ответа

Решение

Все зависит от того, сколько страниц вы можете получить до появления сообщения об ошибке.

Попробуйте измерить, сколько страниц в среднем вы можете получить.

4 страницы перед сообщением bwshare - это минимум.

Если вы получаете сообщение об ошибке до достижения 4-страничных загрузок, то il будет быстрее спать (2) после каждой загрузки.

Попробуй так... это может помочь тебе.

  $requestTime = 0.1; // s/connection

    foreach(/* blah */) {
        $start = microtime(true);
        // Do your stuff to here.. get_file_content($url) and other processing .........

        if($timeTaken = microtime(true)-$start < $requestTime) {
            usleep(($requestTime-$timeTaken)*1000000);
        }
    }

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

Другие вопросы по тегам