From d5ecccc485144eaadf2be4964c7cdee4fe041a17 Mon Sep 17 00:00:00 2001 From: alyssa Date: Sat, 11 Jan 2025 01:37:16 +0000 Subject: [PATCH] fix(scheduled_tasks): better error handling --- crates/scheduled_tasks/src/tasks.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/crates/scheduled_tasks/src/tasks.rs b/crates/scheduled_tasks/src/tasks.rs index 62ec304b..13622281 100644 --- a/crates/scheduled_tasks/src/tasks.rs +++ b/crates/scheduled_tasks/src/tasks.rs @@ -10,6 +10,7 @@ use metrics::gauge; use num_format::{Locale, ToFormattedString}; use reqwest::ClientBuilder; use sqlx::Executor; +use tracing::error; use crate::AppCtx; @@ -182,16 +183,23 @@ pub async fn update_stats_api(ctx: AppCtx) -> anyhow::Result<()> { let data = resp.json::().await?; + let error_handler = || { + error!("missing data at {}", $q); + }; + data.data .result .get(0) - .expect("missing data") + .ok_or_else(error_handler) + .unwrap() .value .clone() .get(1) - .expect("missing data") + .ok_or_else(error_handler) + .unwrap() .as_str() - .expect("invalid data") + .ok_or_else(error_handler) + .unwrap() .parse::<$t>()? }}; ($t:ty, $q:expr, $wrap:expr) => {{ @@ -259,8 +267,7 @@ pub async fn update_stats_api(ctx: AppCtx) -> anyhow::Result<()> { .set::<(), &str, String>( "statsapi", serde_json::to_string(&data).expect("should not fail"), - // Some(fred::types::Expiration::EX(60)), - None, + Some(fred::types::Expiration::EX(60)), None, false, )