Ghiduri
Sincronizează inventarul complet
Două fluxuri mențin un catalog local la zi: /cars pentru inventarul activ și /archived-lots pentru listările care au dispărut.
- 1
Construiește catalogul inițial
Parcurge paginile
/cars, folosindsimple_paginate=1când totalurile nu sunt necesare. Stochează ID-ul vehiculului, sursa, identificatorii lotului și momentele actualizărilor. - 2
Colectează actualizările
Interoghează periodic
/cars?minutes=60 pentru o fereastră de o oră sau alege o fereastră potrivită intervalului tău de interogare (1–4320 de minute). Citește fiecare pagină cu aceleași filtre. - 3
Procesează listările arhivate
Interoghează periodic
/archived-lots?minutes=60 pe o fereastră corespunzătoare și marchează acel lot din sursă ca inactiv. Un lot arhivat nu înseamnă că toate listările vehiculului sunt inactive. - 4
Aplică modificările idempotent
Fă upsert după identificatori. Folosește ferestre suprapuse și momentele stocate pentru a tolera reîncercările și duplicatele.
- 5
Reconciliază periodic
O fereastră glisantă nu este un cursor durabil. După o pauză mai lungă de 72 de ore, reconstruiește inventarul activ în loc să te bazezi pe fluxul incremental.
Arhivează după lot_id: vehiculul poate avea alte loturi active. Arhiva veche conține bid/sale_date scalare, cea nouă – {value, updated_at}. Valoarea bid din structura veche nu garantează prețul final confirmat.
Exemplu Python executabil pe server: parcurge ambele fluxuri, actualizează vehiculele și loturile în SQLite și arhivează doar lotul afectat. Cheie din mediul serverului, timeout, reîncercări limitate și momentul ultimei sincronizări reușite. Instalează requests. Setează AUCTIONS_API_KEY pe server și rulează o dată python sync_auction_cars.py --initial; programează rulările următoare fără --initial. Pagini implicite: cars=50, arhivă=100. Pentru Unlimited: AUCTIONS_CARS_PER_PAGE=1000 și AUCTIONS_ARCHIVE_PER_PAGE=1000. Rulează un singur worker (blocare în scheduler); adaptează SQLite și reconciliază pauzele peste 72 de ore. Fluxul nu devine o captură fixă.