Guides
Synchroniser tout le stock
Deux flux gardent un catalogue local à jour : /cars pour le stock actif et /archived-lots pour les annonces disparues.
- 1
Construire le catalogue initial
Parcourez
/carspage par page, avecsimple_paginate=1si les totaux sont inutiles. Enregistrez l’ID du véhicule, la source, les identifiants du lot et les horodatages de mise à jour. - 2
Collecter les mises à jour
Interrogez
/cars?minutes=60 pour une fenêtre d’une heure, ou choisissez une fenêtre adaptée à votre fréquence d’interrogation (1–4320 minutes). Lisez chaque page avec les mêmes filtres. - 3
Traiter les annonces archivées
Interrogez
/archived-lots?minutes=60 sur une fenêtre équivalente et marquez ce lot source comme inactif. Un lot archivé ne signifie pas que toutes les annonces du véhicule sont inactives. - 4
Appliquer les changements de façon idempotente
Faites un upsert par identifiants. Utilisez des fenêtres qui se chevauchent et les horodatages enregistrés pour tolérer relances et doublons.
- 5
Réconcilier régulièrement
Une fenêtre glissante n’est pas un curseur durable. Après une interruption de plus de 72 heures, reconstruisez le stock actif au lieu de vous fier au flux incrémental.
Archivez au niveau du lot avec lot_id. Un véhicule peut avoir d’autres lots actifs. Les anciennes réponses de l’archive contiennent bid/sale_date en valeurs scalaires ; les plus récentes utilisent {value, updated_at}. Ne considérez pas un ancien bid comme un prix de vente final confirmé.
Un exemple Python exécutable côté serveur : parcourt les pages des deux flux, insère ou met à jour les véhicules et les lots dans SQLite et archive uniquement le lot concerné. Utilise une clé issue de l’environnement serveur, des timeouts, des nouvelles tentatives limitées et un point de reprise du dernier succès. Installez requests. Définissez AUCTIONS_API_KEY sur le serveur, puis lancez une fois python sync_auction_cars.py --initial ; planifiez les exécutions suivantes sans --initial. Tailles de page par défaut : cars=50, archive=100. Avec Unlimited, vous pouvez définir AUCTIONS_CARS_PER_PAGE=1000 et AUCTIONS_ARCHIVE_PER_PAGE=1000. N’exécutez qu’un worker à la fois (verrou du planificateur) ; adaptez le stockage SQLite et rapprochez les écarts de plus de 72 heures. Cet exemple ne fige pas le flux mouvant en un instantané.