This commit is contained in:
2023-08-26 00:17:48 +02:00
parent 937e9c16d4
commit 6610521103
2 changed files with 14 additions and 14 deletions

View File

@@ -11,7 +11,7 @@ use teloxide::{
prelude::*, prelude::*,
types::*, types::*,
}; };
use tokio::time::sleep; use tokio::time::{self};
use tokio_util::compat::FuturesAsyncReadCompatExt; use tokio_util::compat::FuturesAsyncReadCompatExt;
use tracing::log; use tracing::log;
@@ -507,7 +507,11 @@ async fn wait_archive(
task_id: String, task_id: String,
message: Message, message: Message,
) -> BotHandlerInternal { ) -> BotHandlerInternal {
let mut interval = time::interval(Duration::from_secs(5));
let task = loop { let task = loop {
interval.tick().await;
let task = match get_task(task_id.clone()).await { let task = match get_task(task_id.clone()).await {
Ok(v) => v, Ok(v) => v,
Err(err) => { Err(err) => {
@@ -535,8 +539,6 @@ async fn wait_archive(
.reply_markup(get_check_keyboard(task.id)) .reply_markup(get_check_keyboard(task.id))
.send() .send()
.await?; .await?;
sleep(Duration::from_secs(5)).await;
}; };
if task.status != TaskStatus::Complete { if task.status != TaskStatus::Complete {

View File

@@ -24,7 +24,7 @@ use tokio::sync::RwLock;
use smallvec::SmallVec; use smallvec::SmallVec;
use teloxide::adaptors::throttle::Limits; use teloxide::adaptors::throttle::Limits;
use teloxide::types::{BotCommand, UpdateKind}; use teloxide::types::{BotCommand, UpdateKind};
use tokio::time::{sleep, Duration}; use tokio::time::{sleep, Duration, self};
use tower_http::trace::TraceLayer; use tower_http::trace::TraceLayer;
use teloxide::prelude::*; use teloxide::prelude::*;
@@ -300,21 +300,19 @@ impl BotsManager {
manager.start_axum_server().await; manager.start_axum_server().await;
let mut i = 0; let mut interval = time::interval(Duration::from_secs(5));
loop { loop {
for _i in 0..30 {
interval.tick().await;
if !running.load(Ordering::SeqCst) { if !running.load(Ordering::SeqCst) {
manager.stop_all().await; manager.stop_all().await;
return; return;
}; };
}
if i == 0 {
manager.check().await; manager.check().await;
} }
sleep(Duration::from_secs(1)).await;
i = (i + 1) % 30;
}
} }
} }