Обработайте список из 1000+ URL-адресов с помощью cURL и PHP - PullRequest
1 голос
/ 02 марта 2012

Я взял на себя внештатную работу по созданию сценария PHP с использованием cURL, который будет принимать список URL, каждый URL перенаправляется на новый URL, поэтому цель состоит в том, чтобы ввести список URL, и в результате получить список обратноURL-адреса, на которые они все перенаправляют.

Я смог выполнить это с помощью curl_multi_exec, мой скрипт в настоящее время выполняет 5 ручек curl параллельно, а на 5 он запускает новый пакет для следующих 5. Яувеличил время ожидания и память PHP, и он действительно хорошо работает со списком из примерно 100 URL.

Проблема в том, что парень хочет иметь возможность вводить 1000 или более URL и запускать их.Когда я сделаю это с его списком, он будет работать в течение 7-8 минут, и в конечном итоге он просто станет белым экраном.

Когда я запустил проект, мне сказали 100 URL, поэтому я и сделал этомаршрут, но с таким большим списком, я думаю, я должен использовать базу данных MySQL для импорта всех URL-адресов, а затем циклически перебирать их со скоростью, равной 100.

Я просто ищу отзывы, если кто-то знаетлучший метод или если есть способ сделать это без использования базы данных?Есть идеи, пожалуйста?

Ответы [ 2 ]

1 голос
/ 02 марта 2012

Я бы порекомендовал вам, чтобы "парень" импортировал список в базу данных, и вы можете извлечь URL-адреса оттуда, записав результаты в БД.

Однако ... вы можете начатьваш PHP-скрипт как CLI-скрипт (с использованием командной строки), тогда у вас может не быть проблем с тайм-аутом.Но это подразумевает, что список URL будет доступен через CLI, например, как текстовый файл в файловой системе.

0 голосов
/ 02 марта 2012

Если вы довольны тем, что ваш сценарий работает, хотя и медленно, подумайте о том, чтобы просто добавить очистку после каждой партии 5. Таким образом, браузер может не прерваться во время ожидания.В качестве альтернативы запишите вывод в отдельный файл (все еще используя flush) и используйте ajax для запроса файла до завершения.

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