[ka6] fix connecteur visionartproductions.com: /api/stats exclut désormais les stores enabled=0 du flux sync_log — leurs derniers syncs à 0 restaient figés dans la fenêtre et la supervision api-ka les comptait broken à vie (le champ additif disabled_stores de 2659e2b ne suffisait pas, api-ka ne le consomme pas encore); le connecteur désactivé disparaît du registre de supervision au lieu d'y rester gelé, disabled_stores conservé, vérifié live: 0 store désactivé dans le flux (fenêtre 72 h et défaut 30 entrées)
1 changed file +11 −6
modified
fabrika/web.py
+11 −6
@@ -476,17 +476,22 @@ def stats(syncs_since_h: float | None = None): | ||
| 476 | 476 | """)[0] |
| 477 | 477 | by_region = q(con, """SELECT region, COUNT(*) AS stores, SUM(product_count) AS products |
| 478 | 478 | FROM stores WHERE region<>'' GROUP BY region ORDER BY products DESC""") |
| 479 | + # Les stores enabled=0 (faux positifs de découverte, boutiques fermées…) | |
| 480 | + # sont exclus du flux : leurs derniers syncs à 0 restent sinon figés dans | |
| 481 | + # la fenêtre et la supervision api-ka les compte comme « broken » à vie. | |
| 482 | + active = "store_id NOT IN (SELECT id FROM stores WHERE enabled = 0)" | |
| 479 | 483 | if syncs_since_h is not None: |
| 480 | 484 | cutoff = time.time() - syncs_since_h * 3600 |
| 481 | − recent = q(con, """SELECT ts, store_id, found, added, updated, removed, status | |
| 482 | − FROM sync_log WHERE ts >= ? ORDER BY ts DESC LIMIT 4000""", | |
| 485 | + recent = q(con, f"""SELECT ts, store_id, found, added, updated, removed, status | |
| 486 | + FROM sync_log WHERE ts >= ? AND {active} | |
| 487 | + ORDER BY ts DESC LIMIT 4000""", | |
| 483 | 488 | (cutoff,)) |
| 484 | 489 | if len(recent) < 20: |
| 485 | − recent = q(con, """SELECT ts, store_id, found, added, updated, removed, status | |
| 486 | − FROM sync_log ORDER BY ts DESC LIMIT 20""") | |
| 490 | + recent = q(con, f"""SELECT ts, store_id, found, added, updated, removed, status | |
| 491 | + FROM sync_log WHERE {active} ORDER BY ts DESC LIMIT 20""") | |
| 487 | 492 | else: |
| 488 | − recent = q(con, """SELECT ts, store_id, found, added, updated, removed, status | |
| 489 | − FROM sync_log ORDER BY ts DESC LIMIT 30""") | |
| 493 | + recent = q(con, f"""SELECT ts, store_id, found, added, updated, removed, status | |
| 494 | + FROM sync_log WHERE {active} ORDER BY ts DESC LIMIT 30""") | |
| 490 | 495 | # Stores volontairement désactivés (faux positifs de découverte, boutiques |
| 491 | 496 | # fermées…) mais présents dans le sync_log : sans ce signal, la supervision |
| 492 | 497 | # api-ka les fige en « broken » car ils n'émettent plus jamais de syncs. |
| 493 | 498 | |