Парсеры и Скрейперы

Длинный цикл, который обходит тысячи страниц за один запуск, ломается ближе к концу — и всегда по-разному.

Длинный цикл, который обходит тысячи страниц за один запуск, ломается ближе к концу — и всегда по-разному.

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

Рабочая схема выглядит иначе. Есть список задач, каждая из которых мала и самостоятельна: одна страница, один раздел, один диапазон. Есть исполнитель, который берёт задачу, выполняет и отмечает результат. Есть правило повтора для тех задач, что не удались.

Что это даёт:

— падение стоит одну задачу, а не весь запуск;
— повтор безопасен, если задача идемпотентна, то есть повторное выполнение не создаёт дубль;
— скорость регулируется числом исполнителей, а не переписыванием кода;
— видно, где именно застряло: задачи с большим числом попыток сами всплывают наверх.

Отдельно про повторы. Их число должно быть ограничено, а пауза между ними расти. Бесконечный повтор одной сломанной задачи выглядит со стороны сайта хуже любого жадного обхода.
Этот пост опубликован в Telegram-канале Парсеры и Скрейперы. Подписаться можно по ссылке: @parsers_mkt_n1k_n1k.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.