session independency (almost)

pull/6/head v1.0.0
prplV 2025-02-28 16:23:47 +03:00
parent 940b2e1c03
commit c6ae83d1aa
1 changed files with 14 additions and 8 deletions

View File

@ -18,17 +18,23 @@ use log::{error, info, warn};
pub async fn get_metrics_from_monitoring(duration: usize, delay: usize) -> anyhow::Result<()> { pub async fn get_metrics_from_monitoring(duration: usize, delay: usize) -> anyhow::Result<()> {
let timer = tokio::time::Instant::now(); let timer = tokio::time::Instant::now();
loop { 'outer: loop {
if duration != 0 && timer.elapsed() >= tokio::time::Duration::from_secs(duration as u64) {
break;
}
let mut a = MonitoringImporter::new().await; let mut a = MonitoringImporter::new().await;
a.start_session().await?; a.start_session().await?;
let vec = a.get_metrics_list().await?; 'inner: loop {
if duration != 0 && timer.elapsed() >= tokio::time::Duration::from_secs(duration as u64) {
break 'outer;
}
let vec = a.get_metrics_list().await.unwrap_or_else(|_| vec![]);
if vec.is_empty() {
warn!("Session dropped, creating new ...");
break 'inner;
}
let _ = a.get_measure_info(Arc::new(vec)).await; let _ = a.get_measure_info(Arc::new(vec)).await;
a.close_session().await?; // a.close_session().await?;
tokio::time::sleep(tokio::time::Duration::from_secs(delay as u64)).await tokio::time::sleep(tokio::time::Duration::from_secs(delay as u64)).await
} }
}
Ok(()) Ok(())
} }