Fix check intervals

This commit is contained in:
2024-05-03 01:03:21 +02:00
parent 493ac00867
commit a77ab84f5c

View File

@@ -156,21 +156,25 @@ impl BotsManager {
pub async fn start(running: Arc<AtomicBool>) { pub async fn start(running: Arc<AtomicBool>) {
start_axum_server(running.clone()).await; 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 { loop {
BotsManager::check().await; tokio::select! {
_ = interval_1s.tick() => {
for _i in 0..30 { if !running.load(Ordering::SeqCst) {
interval.tick().await; BotsManager::stop_all().await;
return;
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;
} }
} }
} }