Уважаемые знатоки, а какие еще методы оптимизации быстродействия можно провести?
1. Можно оптимизировать парсинг для бэкграунд режима на основе предсказания. Т.е. если запросили товар с определёнными характеристиками, то все линки с этим товаром для всех магазинов - ставим в приоритет!
2. Используйте круговую очерёдность доменов (round-robin) при обработке урлов из очереди, чтобы увеличить интервалы между запросами к одному сайту и тем самым, уменьшить риск бана.
3. Создайте API для своего сервиса, к которому будут подключаться клиенты, а в клиентах - сделайте возможность получения информации о товарных предложениях с других сайтов минуя Ваш сервер (только это укажите явно!). Т.е., превратите клиентов в прайс-консолидаторы. Таким образом, Вы распределите нагрузку парсинга среди клиентов. А когда клиенты будут собирать информацию по конкретному товару сразу с нескольких URL - пусть автоматически отсылается информация через API на ваш сервер.
4. (всё нижеописанное - для одного домена, который необходимо парсить!)
Периодичность парсинга для конкретного магазина - зависит только от ширины вашего канала, вычислительных мощностей на вашей стороне и соблюдения АДЕКВАТНОГО интервала между последовательными запросами к этому (одному) магазину. Т.е. при "round-robin" следите, чтобы запросы были не чаще, чем раз в 5-10 минут.
Или можно просто чередовать "пакет"/"период":
"пакет": 100 запросов с периодом 2 минуты и пауза 3 часа,
"период": 100 запросов на протяжении 3-х часов, и снова "пакет",
и т.д. по-кругу (или в случайной последовательности).