Руководства
Синхронизация всего инвентаря
Две ленты поддерживают локальный каталог в актуальном состоянии: /cars для активного инвентаря и /archived-lots для объявлений, которых уже нет.
- 1
Соберите начальный каталог
Пройдите по страницам
/cars, используяsimple_paginate=1,если общее количество не нужно. Сохраняйте ID автомобиля, источник, идентификаторы лотов и время обновления. - 2
Получайте обновления
Опрашивайте
/cars?minutes=60 для часового окна или выберите окно под свой интервал опроса (1–4320 минут). Читайте все страницы с одинаковыми фильтрами. - 3
Обрабатывайте архивные объявления
Опрашивайте
/archived-lots?minutes=60 с соответствующим окном и помечайте этот лот источника как неактивный. Один архивный лот не означает, что неактивны все объявления автомобиля. - 4
Применяйте изменения идемпотентно
Делайте upsert по идентификаторам. Используйте пересекающиеся окна и сохранённое время, чтобы переживать повторы и дубликаты.
- 5
Периодически сверяйте данные
Скользящее окно не является надёжным курсором. После паузы дольше 72 часов пересоберите активный инвентарь, а не полагайтесь на инкрементальную ленту.
Архивируйте по lot_id: у автомобиля могут оставаться активные лоты. Старые ответы архива содержат скалярные bid/sale_date, новые – {value, updated_at}. Старое поле bid не гарантирует подтверждённую цену продажи.
Рабочий серверный пример Python: обходит страницы обоих потоков, сохраняет автомобили и лоты в SQLite, архивирует только нужный лот. Ключ из окружения сервера, таймауты, ограниченные повторы и отметка успешной синхронизации. Установите requests. Задайте AUCTIONS_API_KEY на сервере, один раз запустите python sync_auction_cars.py --initial; далее запускайте по расписанию без --initial. Размер страниц: cars=50, архив=100. Для Unlimited: AUCTIONS_CARS_PER_PAGE=1000 и AUCTIONS_ARCHIVE_PER_PAGE=1000. Не допускайте параллельных заданий (блокировка планировщика); адаптируйте SQLite и сверяйте пробелы дольше 72 часов. Поток не является фиксированным снимком.