SPB Git forge

spb/house-ka

Public
18commits 1branches 0releases
1.9 MBsize
maindefault branch
19 days agolast push
Python 67% TypeScript 18.2% CSS 14.4%

[ka2] fix connecteur c21_ab: sommeil adaptatif de la boucle watch (cycle > 24 h) + restart sync

Les 11 sources c21_* etaient stale car house-ka-sync (pm2) tournait depuis
avant le commit c9b9b3f qui les a ajoutees : le registre en memoire ne
contenait que les 15 sources RealtyPress. Restart pm2 -> les c21 sont de
nouveau planifiees (la passe commence par c21_bc/c21_ab).

En plus, watch() dormait 240 min fixes apres une passe qui dure deja ~20 h
(30 sources), soit un cycle > 24 h qui refranchirait le seuil stale de la
supervision. Le sommeil devient adaptatif : max(60 s, intervalle - duree
de la passe).

Test reel : run.py sync c21_ab -> found=26966 (mediane 26760), 584 ajoutees,
26047 mises a jour, 679 s.
Simon-Pierre Boucher committed 26 days ago (Aug 29, 2026) parent 9eb234d

1 changed file +7 −2

modified immoka/ingest.py +7 −2
@@ -92,6 +92,7 @@ def watch(interval_seconds: int = 3600) -> None:
92 92 quand data/vraiprix.db (ou VRAIPRIX_DB) est disponible.
93 93 """
94 94 while True:
95 + cycle_t0 = time.time()
95 96 run()
96 97 try: # nouvelles adresses → coordonnées (cache : quasi gratuit ensuite)
97 98 from . import geocode
@@ -115,5 +116,9 @@ def watch(interval_seconds: int = 3600) -> None:
115 116 mortgage_scheduler.maybe_run()
116 117 except Exception as exc:
117 118 print(f"[immo-ka] mortgage: erreur non bloquante: {exc}", file=sys.stderr)
118 − print(f"[immo-ka] prochaine synchronisation dans {interval_seconds // 60} min")
119 − time.sleep(interval_seconds)
119 + # sommeil ADAPTATIF : une passe complète peut durer des heures (30
120 + # sources) — un sleep fixe par-dessus ferait dépasser 24 h de cadence
121 + # et la supervision marquerait toutes les sources « stale ».
122 + delay = max(60, interval_seconds - int(time.time() - cycle_t0))
123 + print(f"[immo-ka] prochaine synchronisation dans {delay // 60} min")
124 + time.sleep(delay)
120 125