Ошибка Net::HTTP падение производительности, tools.query.add, query.lvl

  • Автор темы Автор темы Boomerc
  • Дата начала Дата начала

Boomerc

A-Parser Enterprise License
A-Parser Enterprise
Версия 1.1.811.
Имеем парсер, который добавляет запросы в темплейте с использованием функции tools.query.add(url) и ограничивает парсинг в зависимости от query.lvl. Уникализация запросов включена. Папки tasks и queries в порядке теста были подмонтированы из ram как tmpfs, чтобы снизить влияние скорости винчестера на показатели. Парсинг пробовал стартовать как с с кол-вом запросов, значительно большим, чем кол-во потоков, так и с одним.
Получили с самого начала старта парсинга:
1) ограничение query.lvl=10, скорость парсинга 21К запросов в минуту
2) ограничение query.lvl=1000, скорость парсинга 13К запросов в минуту

Методом пробок и ошибок, а также подключения в консоли к БД {task_id}_additional.db было выяснено, что парсер стремится углубить процесс с момента старта, несмотря на то, что на нижних уровнях полно запросов, которые нужно выполнить и в самом файле запросов есть еще невыполненные запросы.
Что хотелось бы получить - пока есть запросы на нижних уровнях query.lvl и/или есть данные в файле запросов , не исполнять запросы на уровнях выше. Тогда производительность при текущей архитектуре ПО будет падать с течением времени, а не с самого начала старта парсинга. Так же в некоторых специфических задачах важно, чтобы запросы выполнялись последовательно. Или я что-то не понимаю и делаю не так, а то, что мне нужно и так есть, а я просто не знаю как это "готовить".
 
мы углубляемся что бы запросы не разрастались, если парсить все нулевые уровни, потом все первые, и т.д. мы к 10 уровню получим миллиарды необработанных запросов, не говоря о том что это сломает другую логику
 
Ok, реализовал workaround - по api создаются крохотные задания, потом результат обрабатывается сторонним скриптом, создается опять крохотное задание и так далее по кругу. На выходе получил максимально возможную скорость сбора данных и в нужной мне последовательности(имитация Fifo queue).
 
Назад
Верх