Проект: Поставщики

Очистка кэша

Диггер формирует кэш в зависимости от использования опции unique команды walk или опции update для команд object_save и object_check. Соответственно кэш делится на два вида, при использовании walk - это кэш URLов, а при использовании object_save - это кэш записей. Система кэша дает диггеру возможность избегать повторного захода на тот же самый URL (к примеру URL с деталями конкретного товара), если включен режим unique команды walk. В случае же режима update команды object_save, диггер не будет записывать данные по конкретной записи, если такая запись уже была собрана ранее, не изменилась и существует в кэше. Это может быть удобно тогда, когда вам необходимо получать только новые записи с сайта источника, игнорируя уже собранные ранее данные.

Для более точного понимания давайте рассмотрим работу кэша на примере команды walk.

Предположим имеется сценарий, где мы последовательно заходим на две ссылки:

              ---
config:
    debug: 2
    agent: Firefox
do:
- link_add:
    url:
    - https://www.diggernaut.com/sandbox/meta-lang-hash-table-en.html
    - https://www.diggernaut.com/sandbox/meta-lang-normalize-tables-en.html
- walk:
    to: links
    mode: unique # РЕЖИМ UNIQUE ВКЛЮЧЕН
    do:
              

Если мы запустим этот сценарий, то после выполнения в кэш URLов будут занесены обе эти ссылки, по которым диггер прошел в ходе работы в режиме unique.

Если посмотреть в раздел очистки кэша, то мы увидим подсказку:

Теперь, давайте добавим к уже существующему списку ссылок еще одну:

              ---
config:
    debug: 2
    agent: Firefox
do:
- link_add:
    url:
    - https://www.diggernaut.com/sandbox/meta-lang-hash-table-en.html
    - https://www.diggernaut.com/sandbox/meta-lang-normalize-tables-en.html
    - https://www.diggernaut.com/sandbox/meta-lang-object-en.html
- walk:
    to: links
    mode: unique # РЕЖИМ UNIQUE ВКЛЮЧЕН
    do:
              

Снова запустим диггер, заглянем в лог исполнения и увидим следующие сообщения:
Skip: https://www.diggernaut.com/sandbox/meta-lang-hash-table-en.html
Skip: https://www.diggernaut.com/sandbox/meta-lang-normalize-tables-en.html
Retrieving page (GET): https://www.diggernaut.com/sandbox/meta-lang-object-en.html

Диггер проигнорировал уже собранные ранее ссылки и забрал только новую. Записей в кэше теперь стало 3. Если мы еще раз попытаемся запустить диггер с этим же сценарием, то обнаружим что диггер проигнорировал уже все 3 ссылки и завершил работу.

Таким же образом кэш работает и для команды object_save.

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

Для очистки кэша выберите пункт Очистить кэш:

Выберите необходимый для очистки вид кэша:

и нажмите на кнопку Подтвердить.

Обратите внимание!
Кэш будет удален безвозвратно.