mirror of
https://github.com/lifegpc/pixiv_downloader.git
synced 2026-06-26 05:37:07 +08:00
24 lines
813 B
Rust
24 lines
813 B
Rust
use super::auth::*;
|
|
use super::context::ServerContext;
|
|
use crate::task_manager::{MaxCount, TaskManager};
|
|
use std::sync::Arc;
|
|
use tokio::time::{interval_at, Duration, Instant};
|
|
|
|
pub async fn start_timer(ctx: Arc<ServerContext>) {
|
|
let mut interval = interval_at(Instant::now(), Duration::from_secs(60));
|
|
let task_count = Arc::new(futures_util::lock::Mutex::new(0usize));
|
|
let max_count = MaxCount::new(8);
|
|
let tasks = TaskManager::new(task_count, max_count);
|
|
loop {
|
|
interval.tick().await;
|
|
tasks.add_task(revoke_expired_tokens(ctx.clone())).await;
|
|
tasks.join().await;
|
|
for task in tasks.take_finished_tasks() {
|
|
let re = task.await;
|
|
if let Ok(Err(e)) = re {
|
|
println!("Timer task error: {}", e);
|
|
}
|
|
}
|
|
}
|
|
}
|