Към съдържанието

Ръководства

Синхронизиране на наличността

Два потока поддържат локалния каталог актуален: /cars за активната наличност и /archived-lots за обявите, които вече ги няма.

  1. 1

    Изградете първоначалния каталог

    Обходете страниците на /cars, като използвате simple_paginate=1, когато общият брой не ви трябва. Запазвайте ID на автомобила, източника, идентификаторите на лота и времето на обновяване.

  2. 2

    Събирайте обновяванията

    Проверявайте /cars?minutes=60 за едночасов прозорец или изберете прозорец според интервала си на проверка (1–4320 минути). Четете всички страници с едни и същи филтри.

  3. 3

    Обработвайте архивните обяви

    Проверявайте /archived-lots?minutes=60 в съответстващ прозорец и отбелязвайте този лот от източника като неактивен. Един архивен лот не означава, че всички обяви на автомобила са неактивни.

  4. 4

    Прилагайте промените идемпотентно

    Правете upsert по идентификатори. Използвайте припокриващи се прозорци и записаното време, за да понасяте повторни опити и дубликати.

  5. 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. Пускайте само един worker наведнъж (заключване в планировчика); адаптирайте съхранението в SQLite и съгласувайте пропуски над 72 часа. Примерът не превръща променящия се поток във фиксирана моментна снимка.

© 2025. AuctionsAPI operates independently and is not affiliated with Copart, IAAI or Encar.