Synchro nocturne : extraction Qlik branchée, fraîcheur du préchauffage lue en ISO

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LG2LLJuswrrTTPKJmunEVf
This commit is contained in:
Claude committed 2026-10-12 19:37:23 +00:00
1 parent 5a84faffb2
commit 8db3fe0335
2 files changed
+17 -1

No files matched your search

+7 -1
View File
@@ -79,7 +79,13 @@ async fn run_warmup(stale_hours: f64) {
let fresh_limit = chrono::Utc::now().naive_utc() - chrono::Duration::milliseconds((stale_hours * 3_600_000.0) as i64);
let fresh: HashSet<String> = existing
.iter()
.filter(|s| s.computed_at_naive().map(|d| d > fresh_limit).unwrap_or(false))
.filter(|s| {
s.computed_at
.as_deref()
.and_then(|c| chrono::DateTime::parse_from_rfc3339(c).ok())
.map(|d| d.naive_utc() > fresh_limit)
.unwrap_or(false)
})
.map(|s| s.code_fournisseur.clone())
.collect();
maj(|j| j.total = fournisseurs.len());
+10
View File
@@ -25,3 +25,13 @@ pub fn reset_ff_api_base() {
pub async fn diagnostiquer_api_ff(base: Option<String>) -> Value {
serde_json::to_value(crate::ff::diagnostic::diagnostiquer_api_ff(base).await).unwrap_or(Value::Null)
}
/// Extraction Qlik d'un fournisseur sur la fenêtre de la synchro (`QLIK_SYNC_MONTHS_BACK`),
/// puis enregistrement dans le cache réseau. Renvoie le nombre de codes enregistrés.
pub async fn extraire_et_enregistrer(codes: Vec<String>, fournisseur: &str) -> anyhow::Result<usize> {
use crate::qlik::date_range::{build_grid_network_qlik_date_filter_now, env_months_back, QLIK_MONTHS_BACK_DEFAULT};
let filtre = build_grid_network_qlik_date_filter_now(env_months_back("QLIK_SYNC_MONTHS_BACK", QLIK_MONTHS_BACK_DEFAULT));
let metrics = crate::qlik::fetch_network_metrics_playwright(Some(codes), None, Some(filtre), Some(fournisseur.to_string())).await?;
let liste: Vec<_> = metrics.into_values().collect();
crate::qlik::upsert_network_metrics(&liste).await
}