From 6610521103561ffa31f94eeedb3e6dbac1d00ada Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Sat, 26 Aug 2023 00:17:48 +0200 Subject: [PATCH] Fix --- src/bots/approved_bot/modules/download.rs | 8 +++++--- src/bots_manager/mod.rs | 20 +++++++++----------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/bots/approved_bot/modules/download.rs b/src/bots/approved_bot/modules/download.rs index f846740..7928bb1 100644 --- a/src/bots/approved_bot/modules/download.rs +++ b/src/bots/approved_bot/modules/download.rs @@ -11,7 +11,7 @@ use teloxide::{ prelude::*, types::*, }; -use tokio::time::sleep; +use tokio::time::{self}; use tokio_util::compat::FuturesAsyncReadCompatExt; use tracing::log; @@ -507,7 +507,11 @@ async fn wait_archive( task_id: String, message: Message, ) -> BotHandlerInternal { + let mut interval = time::interval(Duration::from_secs(5)); + let task = loop { + interval.tick().await; + let task = match get_task(task_id.clone()).await { Ok(v) => v, Err(err) => { @@ -535,8 +539,6 @@ async fn wait_archive( .reply_markup(get_check_keyboard(task.id)) .send() .await?; - - sleep(Duration::from_secs(5)).await; }; if task.status != TaskStatus::Complete { diff --git a/src/bots_manager/mod.rs b/src/bots_manager/mod.rs index e6fccda..8c5d572 100644 --- a/src/bots_manager/mod.rs +++ b/src/bots_manager/mod.rs @@ -24,7 +24,7 @@ use tokio::sync::RwLock; use smallvec::SmallVec; use teloxide::adaptors::throttle::Limits; use teloxide::types::{BotCommand, UpdateKind}; -use tokio::time::{sleep, Duration}; +use tokio::time::{sleep, Duration, self}; use tower_http::trace::TraceLayer; use teloxide::prelude::*; @@ -300,21 +300,19 @@ impl BotsManager { manager.start_axum_server().await; - let mut i = 0; + let mut interval = time::interval(Duration::from_secs(5)); loop { - if !running.load(Ordering::SeqCst) { - manager.stop_all().await; - return; - }; + for _i in 0..30 { + interval.tick().await; - if i == 0 { - manager.check().await; + if !running.load(Ordering::SeqCst) { + manager.stop_all().await; + return; + }; } - sleep(Duration::from_secs(1)).await; - - i = (i + 1) % 30; + manager.check().await; } } }