From a77ab84f5cf616ed4edae577ced953a84d41c9f3 Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Fri, 3 May 2024 01:03:21 +0200 Subject: [PATCH] Fix check intervals --- src/bots_manager/mod.rs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/bots_manager/mod.rs b/src/bots_manager/mod.rs index fd4c37c..c82c655 100644 --- a/src/bots_manager/mod.rs +++ b/src/bots_manager/mod.rs @@ -156,21 +156,25 @@ impl BotsManager { pub async fn start(running: Arc) { start_axum_server(running.clone()).await; - let mut interval = time::interval(Duration::from_secs(5)); + let mut interval_1s = time::interval(Duration::from_secs(1)); + let mut interval_30s = time::interval(Duration::from_secs(30)); + let mut interval_1m = time::interval(Duration::from_secs(60)); loop { - BotsManager::check().await; - - for _i in 0..30 { - interval.tick().await; - - if !running.load(Ordering::SeqCst) { - BotsManager::stop_all().await; - return; - }; + tokio::select! { + _ = interval_1s.tick() => { + if !running.load(Ordering::SeqCst) { + BotsManager::stop_all().await; + return; + } + }, + _ = interval_30s.tick() => { + BotsManager::check().await; + }, + _ = interval_1m.tick() => { + BotsManager::check_pending_updates().await; + }, } - - BotsManager::check_pending_updates().await; } } }