- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте.
Есть скрипт который парсит все товары продавца по его ид в системе digiseller.ru.
При 700 наименований товара данный код выполняется более 1й минуты.
Возможно ли как-нибудь снизить время выполнение этого скрипта?
Чем вас скорость не устраивает? 10 запросов в секунду.
Можете пойти другим путем, парсите digiseller не в прямом эфире. Типа как бот Яндекса. Пропарсили, сохранили в базу. Завершили один обход, пошли по новой. Повесите на крон и все. Можно в несколько потоков делать.
Пока digiseller не забанит ваш ip :)
Ну а потом уже с базы выводите все что нужно.
Это нужно для работы продавца со своим товаром.
Т.е ввел продавец свой ID - выводим ему информацию о его товарах.
Поэтому важна скорость и вариант с кроном не подходит...
Я PHP только начинаю изучать, знаю не много. Думал что можно это более грамотно составить и ускорить весь процесс.
Если с увеличением скорости не получится, может можно через яваскрипт подгружать результат выполнения этого скрипта? Было бы неплохо, если во время работы скрипта выводилась картинка(loader), а после выполнения - результат.
может можно через яваскрипт подгружать результат выполнения этого скрипта? Было бы неплохо, если во время работы скрипта выводилась картинка(loader), а после выполнения - результат.
Конечно можно и так. Сложностей нет. Можете использовать jquery для этого.
Используйте curl_multi
Можно использовать другой язык, поддерживающий потоки.
В php все таки эмуляция потоков
Используйте curl_multi
Сделал. Скорость раз в 5-7 увеличилась(в общем то это и устраивает), но теперь не хочет обрабатывать более 400-450 товаров - выскакивает "502 Bad Gateway".
С этим что-нибудь можно сделать:)?
Сделал. Скорость раз в 5-7 увеличилась(в общем то это и устраивает), но теперь не хочет обрабатывать более 400-450 товаров - выскакивает "502 Bad Gateway".
С этим что-нибудь можно сделать:)?
Ну правильно выскакивает, ограничивайте количество одновременных потоков
Тут у товарища та же проблема
Запустил скрипт на другом хостинге- грузится, ошибок не вылазит.
ограничивайте количество одновременных потоков
Каким образом можно ограничить, не подскажите?
Каким образом можно ограничить, не подскажите?
У вас потоки создаются в цикле, правильно? Я не знаю как у Curl, но на неблокируемых сокетах я открывал N потоков, а не все сразу, если количество открытых потоков меньше, чем мне надо, то в том же цикле открывал новый поток.
Во многих примерах в сети народ открывает сразу все потоки в одном цикле. Обычно Curl держит до 100 потоков и жрёт много памяти. Вам же нужно контролировать количество одновременно открытых потоков
Пытался понять как это сделать, но так ничего на ум не пришло...
dma84, если знаете, подскажите как в этом коде ограничить количество одновременно открытых потоков.