Dev'de ölçüldü: upstream 429 gövdesi "Customer Hourly Request Limit Exceeded",
~110 çağrı sonra; 47 dk sonraki denemede hâlâ 429 (kayan saatlik kota, sabit
kilit değil). Kilide çarpıp her araç için baştan başlamak yerine:
- Throttle: `CARCATONLINE_HOURLY_CALL_CAP` (varsayılan 90) — Istanbul saat
dilimi başına Redis sayaç; dolunca iş kendini bir sonraki saat başına erteler.
- Tarama cache'i: groups2 cevapları Redis'te 24 s (`carcatonline:groups:*`);
tekrar koşan iş cache'ten okur, çağrı harcamaz.
- Varyant çözümü metadata'ya `status:"matched"` olarak yazılır; tarama saat
ortasında kesilirse sonraki koşu kademeli seçimi atlar. Scan 'matched'
satırları 7 günlük bekleme olmadan yeniden kuyruklar.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
pro.carcatonline.com (PartsLink24 aynası, pcat-benzeri API) yeni katalog kaynağı.
Hedef: source='pl24', architecture P5_MODERN ve hiç kategorisi olmayan
catalog_vehicles satırları (prod'da ~770). Sadece 20:00–07:00 Europe/Istanbul
penceresinde çalışır; hem tarama hem araç işi pencere dışında kendini pencere
başına erteler, pencere kapanınca tarama yarıda kesilir.
- integrations/carcatonline: istemci (login → /widget HTML'deki 6 aylık JWT →
api.carcatonline.com Bearer; Redis'te paylaşılan token), marka→katalog +
model eşleyici (birebir / bölge-yıl soyma / gövde kodu katmanları, ölçülen
prod verisiyle test), kademeli varyant seçimi + tam ağaç tarayıcı, isim
tekilleştirme (categories unique index'i), throttle (1 çağrı/2,2 s Redis
slot, 429 → 40 dk kilit, günlük çağrı tavanı, gece penceresi).
- carcatonline-backfill kuyruğu: 30 dk'da bir `scan` (pencere içinde, kuyruk
boşsa 20 araç), `vehicle` işi ağacı `carcatonline` kaynaklı categories
satırları olarak yazar (link_path `carcat:<catalog>:<car>:<group>`),
catalog_vehicles.metadata.carcatonline'a eşleme/varyant/sonuç kaydeder,
ağaç cache'ini siler, isimleri LLM çeviri kuyruğuna verir (processor
'carcatonline' kaynağını da geri-doldurur). Eşleşmeyen/hatalı araçlar 7 gün
sonra tekrar denenir.
- CatalogService: carcatonline düğümleri PL24 drill'ine gönderilmez; yaprak
açıldığında parçalar + plate görseli on-demand tek çağrıyla çekilir (aynı
throttle/kilit/bütçe, parça adları translateMany ile Türkçe).
- Env: CARCATONLINE_ENABLED/EMAIL/PASSWORD/DAILY_CALL_CAP/WINDOW_START/
WINDOW_END/MIN_INTERVAL_MS/LOCKOUT_SECONDS/SCAN_BATCH (compose api+worker).
Legacy P4 mimarileri (Hyundai/Kia/Nissan/Opel/Ford) kapsam dışı: katalog
sayfası onları önce PL24'ten okuyor.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>