Настройка потоков

14 сен 2017
  • Работа A-Parser построена по принципу многопоточной обработки данных. Парсер параллельно выполняет задачи в отдельных потоках, количество которых можно гибко варьировать в зависимости от конфигурации сервера.
    Давайте разберёмся что такое потоки на практике. Допустим вам необходимо составить отчет за три месяца.
    Как видно из этих примеров, многопоточная работа позволяет выполнить задачу быстрее, но в то же время требует больше ресурсов (нам нужно 3 бухгалтера вместо 1-го).
    Аналогично работает многопоточность и в А-Парсере. Допустим, вам нужно парсить информацию с нескольких ссылок:
    1. при одном потоке приложение будет парсить каждый сайт по очереди
    2. при работе в несколько потоков каждый будет обрабатывать свою ссылку, по завершению которой будет приступать к следующей необработанной в списке
    Таким образом во втором варианте вся задача будет выполнена значительно быстрее, но при этом требуется больше ресурсов сервера, поэтому рекомендуется соблюдать Системные требования.


    Настройка потоков(top)

    Настройка потоков в А-Парсере осуществляется отдельно для каждого задания, в зависимости от параметров которые требуются для его выполнения. По умолчанию доступно 2 конфига потоков: на 20 (default) и 100 (100 Threads) потоков. Для того чтобы попасть в настройки выбранного конфига, нужно нажать на иконку карандаша [​IMG] , после чего откроются его настройки.
    [​IMG]
    Также перейти к настройкам потоков можно через пункт меню: Настройки - Настройки потоков.

    Здесь мы можем:
    • создать новый конфиг со своими собственными настройками и сохранить его под своим названием (кнопка Добавить новый)
    • внести изменения в существующий конфиг, выбрав его из выпадающего списка (кнопка Сохранить). Внимание, конфиг по-умолчанию с названием default - изменить нельзя.
    [​IMG]
    Ниже каждый пункт настроек будет рассмотрен детально.

    Threads count(top)

    Данный параметр задает количество потоков, в которое будет работать задание, запущенное с этим конфигом. Количество потоков может быть любое, но нужно учитывать возможности вашего сервера, а также ограничение тарифа прокси, если такое ограничение предусмотрено. Например для наших прокси можно указать не больше выбранного тарифа.

    Proxy Checkers(top)

    Этот параметр дает возможность выбора проксичекера с определенными настройками. Здесь можно выбрать параметр All, который означает использование всех работающих проксичекеров, либо только те, которые нужно использовать в задании (доступен выбор нескольких позиций).

    Max threads per proxy(top)

    Здесь задается количество потоков, на которых одновременно будет использоваться один и тот же прокси. Позволяет задать разные параметры, например работу 1 поток = 1 прокси.

    Global proxy ban(top)

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

    Max connections per host(top)

    Данный параметр указывает максимальное количество соединений на хост, предназначено для уменьшения нагрузки на сайт при парсинге с него информации. По сути, указание этого параметра дает возможность контролировать количество запросов в один момент, на каждый конкретный домен. Включение этого параметра распространяется на задание, если запускать несколько заданий одновременно с одинаковым конфигом потоков, то лимит будет считаться для всех заданий.

    Reuse proxy between retries(top)

    Эта настройка отключает проверку на уникальность прокси для каждой попытки, а так же не будет работать бан прокси. Это в свою очередь означает возможность использовать 1 прокси для всех попыток.

    Рекомендации(top)

    В этой статье рассмотрены все настройки, которые дают возможность управлять потоками. Стоит отметить, что при настройках конфига потоков не обязательно задавать все параметры, которые указанные в статье, достаточно задать только те, которые обеспечат получение корректного результата. Обычно нужно менять только Threads count, остальные настройки можно оставлять по-умолчанию.