diff options
author | metamuffin <metamuffin@disroot.org> | 2024-05-03 22:06:37 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-05-03 22:06:37 +0200 |
commit | 5d8d77a98fb84d05d34b57df73e0bc180c3140c2 (patch) | |
tree | 3cb47c2eca0c815f14f4db85f282845796889484 /src/check.rs | |
parent | d60bedc20dc0cc54cb697f3a45e5b222de6f1479 (diff) | |
download | statuspage-5d8d77a98fb84d05d34b57df73e0bc180c3140c2.tar statuspage-5d8d77a98fb84d05d34b57df73e0bc180c3140c2.tar.bz2 statuspage-5d8d77a98fb84d05d34b57df73e0bc180c3140c2.tar.zst |
works
Diffstat (limited to 'src/check.rs')
-rw-r--r-- | src/check.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/check.rs b/src/check.rs index bfde1b9..4b6bc95 100644 --- a/src/check.rs +++ b/src/check.rs @@ -1,4 +1,4 @@ -use crate::{Check, Config, Success, STATUS}; +use crate::{log::update_service, Check, Config, Success, GLOBAL_ERROR, STATUS}; use anyhow::{anyhow, bail, Context, Result}; use futures::{stream::FuturesUnordered, StreamExt}; use log::info; @@ -27,11 +27,22 @@ async fn check_service(config: &Arc<Config>, i: usize) { Ok(Err(e)) => Err(e), Err(_) => Err(anyhow!("timed out")), }; + let r2 = r + .as_ref() + .err() + .map(|e| (format!("{e}"), format!("{e:?}"))) + .to_owned(); info!("check {i}:{j} => {r:?}"); { let mut g = STATUS.write().await; g.insert((i, j), r); } + let config = config.clone(); + tokio::task::spawn(async move { + if let Err(e) = update_service(config.clone(), i, j, r2).await { + *GLOBAL_ERROR.write().await = Some(e); + } + }) }, )); while let Some(_) = futs.next().await {} |