You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: cron/index-autometa-tables/CRON.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,8 @@ timeout: 3600
6
6
7
7
Recrée les index d'`autometa_tables_db` et rafraîchit les statistiques (`ANALYZE`). Les tables sont reconstruites périodiquement par le DAG `populate_matometa_db` de pilotage-airflow (`if_exists="replace"`), ce qui supprime les index ; ce cron les recrée après le chargement. La liste des index vit dans `cron.py` (`INDEXES`).
8
8
9
+
Prod uniquement : prod et staging visent la **même**`autometa_tables_db`. Deux runs concurrents (un par environnement) font courir `CREATE INDEX IF NOT EXISTS` et provoquent des collisions `pg_class` (`UniqueViolation`). Le script ne s'exécute donc que si `AUTOMETA_ENV == "prod"` ; ailleurs il sort immédiatement.
10
+
9
11
Tolérance aux pannes : chaque statement s'exécute en AUTOCOMMIT ; un échec isolé (table absente, colonne renommée) est logué sans bloquer les suivants. Le script raise en fin de run si au moins un statement a échoué — `web.cron` remonte `failure` à Sentry et Slack.
10
12
11
13
Si le DAG termine après l'heure du cron, les index de la journée ne réapparaissent qu'au run suivant (ou via un déclenchement manuel depuis `/cron`).
0 commit comments