aboutsummaryrefslogtreecommitdiff
path: root/src/check.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/check.rs')
-rw-r--r--src/check.rs13
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 {}