скручиваемость нескольких проблем при сканировании - PullRequest
1 голос
/ 16 января 2012

У нас есть гусеничный двигатель, обслуживающий около 500 000 посетителей в месяц.На данный момент мы используем curl для получения веб-страниц.Недавно мы использовали multi-exec с curl для одновременного сканирования страниц.Мы настроили сканирование на 20 страниц одновременно.

Теперь в процессе получения веб-страниц скручивание полностью остановится, пока не будут получены все 20 страниц, и только затем перейдет к следующим 20. Это похоже на медленную выборку одной страницы, а затем скручивание.будет ждать загрузки этой страницы, пока она не перейдет к следующему циклу, в котором я получу следующие 20 страниц.

Есть ли другой способ преодолеть это?Я надеюсь, что мой вопрос ясен.

Позже

Под преодолением я подразумеваю только скручивание изображения, получающее 20 страниц одновременно.Те, которые извлекаются, мгновенно заменяются новыми, чтобы их можно было получить, не дожидаясь окончания всех 20?Очистить

1 Ответ

1 голос
/ 16 января 2012

Конечно, просто добавьте новые дескрипторы с новым URL, как только один будет завершен.Там нет необходимости ждать, пока все 20 завершить в первую очередь.Это просто неэффективно.

И вы, конечно, можете увеличить 20 на 200 или 600 или что-то еще, если хотите, чтобы ...

См. http://curl.haxx.se/libcurl/c/libcurl-multi.html для обзоракак мультиинтерфейс работает на уровне C.PHP / CURL API - это всего лишь тонкий слой сверху.

В PHP curl_multi_exec () вернет счетчик «работающих дескрипторов», который уменьшается после завершения одной или нескольких передач.Вы можете (и должны) также вызвать curl_multi_info_read (), чтобы точно выяснить, какая передача завершилась, и ее индивидуальный код возврата.

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