6.2 Налаштування Планувальника Scheduler

Планувальник Scheduler це компонент WebMagic для управління списком черги URL-ів. Загалом планувальник виконує 2 функції:

  1. Управління списком черги URL-ів, що чекають на обробки пошукачем
  2. Відфільтровувати повтори URL-ів

WebMagic мають деякі загальні Scheduler. Якщо ви хочете запустити простий пошукач, то вам не потрібно налаштувати Планувальник Scheduler. Але має сенс для вас знати деякі з функцій.

Class Опис Зауваження
DuplicateRemovedScheduler абстрактний клас - надає деякі шаблонні методи роширюючи його можна впроваджувати свої власні функції
QueueScheduler використовує чергу пам'яті для збереження URL
PriorityScheduler використовує пріоритети для черги пам'яті при збереженні URL використання пам'яті більше, ніж QueueScheduler, але тільки коли ви встановлюєте пріоритети запросів. Використання PriorityScheduler необхідне тільки якщо потрібно вказувати пріоритетність запитів
FileCacheQueueScheduler використовується для зберігання URL у файл, коли виходять з програми і при наступному запуску можна продовжити сканування пошукачем URL, що були попередньо збережені в файлі. Потрібно прописати шлях до файлу. Буде створено два файли .urls.txt та .cursor.txt
RedisScheduler використовувати Redis для збереження черги, він може сканувати пошукачем у Інтернеті використовуючи розподілену систему необхідно встановити Redis і запустити його

З версії 0.5.1 перероблено планувальник Scheduler - видалення дублів було винесено до окремого інтерфейсу: DuplicateRemover. Завдяки цьому ви можете встановити різні DuplicateRemover для одного планувальника Scheduler. Є два способи видалити дублікати.

Class Опис
HashSetDuplicateRemover використовує HashSet, щоб видаляти, що потребує великий обсяг пам'яті
BloomFilterDuplicateRemover використовує Фільтр Блума BloomFilter для видалення, використовує менше пам'яті. Але він може не врахувати декілька URL

Всі планувальники за замовчуванням для видалення використовують HashSetDuplicateRemover (окрім RedisScheduler). Якщо у вас дуже багато URL, рекомендуємо використовувати BloomFilterDuplicateRemover. Наприклад:


spider.setScheduler(new QueueScheduler()
    .setDuplicateRemover(new BloomFilterDuplicateRemover(10000000)) //10000000 is the estimate value of urls ///10000000 приблизне значення кількості URL-ів
)

results matching ""

    No results matching ""