Przewodniki
Synchronizacja pełnych zasobów
Dwa feedy utrzymują lokalny katalog na bieżąco: /cars dla aktywnych zasobów i /archived-lots dla ogłoszeń, które zniknęły.
- 1
Zbuduj początkowy katalog
Przejdź przez strony
/cars, używającsimple_paginate=1,gdy łączne liczby są zbędne. Zapisz ID pojazdu, źródło, identyfikatory lotów i znaczniki czasu aktualizacji. - 2
Zbieraj aktualizacje
Odpytuj
/cars?minutes=60 dla okna jednej godziny lub wybierz okno pasujące do Twojego interwału odpytywania (1–4320 minut). Czytaj każdą stronę z tymi samymi filtrami. - 3
Przetwarzaj zarchiwizowane ogłoszenia
Odpytuj
/archived-lots?minutes=60 w pasującym oknie i oznaczaj dany lot źródła jako nieaktywny. Jeden zarchiwizowany lot nie oznacza, że wszystkie ogłoszenia tego pojazdu są nieaktywne. - 4
Stosuj zmiany idempotentnie
Wykonuj upsert według identyfikatorów. Używaj nakładających się okien i zapisanych znaczników czasu, aby tolerować ponowienia i duplikaty.
- 5
Uzgadniaj okresowo
Okno kroczące nie jest trwałym kursorem. Po przerwie dłuższej niż 72 godziny odbuduj aktywne zasoby zamiast polegać na feedzie przyrostowym.
Archiwizuj według lot_id: pojazd może mieć inne aktywne loty. Starsze odpowiedzi archiwum zawierają skalarne bid/sale_date, nowsze – {value, updated_at}. Starsze pole bid nie gwarantuje potwierdzonej ceny sprzedaży.
Uruchamialny serwerowy przykład Python: pobiera strony obu strumieni, zapisuje pojazdy i loty w SQLite, archiwizuje tylko dany lot. Klucz ze środowiska serwera, limity czasu, ograniczone ponowienia i znacznik ostatniej udanej synchronizacji. Zainstaluj requests. Ustaw AUCTIONS_API_KEY na serwerze i uruchom raz python sync_auction_cars.py --initial; kolejne uruchomienia planuj bez --initial. Rozmiary stron: cars=50, archiwum=100. Dla Unlimited: AUCTIONS_CARS_PER_PAGE=1000 i AUCTIONS_ARCHIVE_PER_PAGE=1000. Uruchamiaj jednego workera (blokada harmonogramu); dostosuj SQLite i uzgodnij przerwy ponad 72 godziny. Strumień nie jest stałą migawką.