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<()> {
let timer = tokio::time::Instant::now();
loop {
if duration != 0 && timer.elapsed() >= tokio::time::Duration::from_secs(duration as u64) {
break;
}
'outer: loop {
let mut a = MonitoringImporter::new().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;
a.close_session().await?;
// a.close_session().await?;
tokio::time::sleep(tokio::time::Duration::from_secs(delay as u64)).await
}
}
Ok(())
}