From 7444fc4f9b028fe3e44a75006092d414355f4362 Mon Sep 17 00:00:00 2001 From: Zynh Ludwig Date: Wed, 28 Aug 2024 19:02:30 -0700 Subject: [PATCH] fixed sweeper module --- src/main.rs | 4 ++-- src/sweeper.rs | 31 +++++++++++++++---------------- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/main.rs b/src/main.rs index fbefa22..5fff09e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -17,7 +17,7 @@ use nyazoom_headers::ForwardedFor; use sanitize_filename_reader_friendly::sanitize; -use std::{io, net::SocketAddr, path::Path, time::Duration}; +use std::{io, net::SocketAddr, path::Path}; use tokio_util::{ compat::FuturesAsyncWriteCompatExt, @@ -65,7 +65,7 @@ async fn main() -> io::Result<()> { let state = cache::fetch_cache().await; - let _ = sweeper::spawn_sweeper(); + sweeper::spawn_sweeper(state.clone()); // Router Setup let app = Router::new() diff --git a/src/sweeper.rs b/src/sweeper.rs index 4485d73..b803803 100644 --- a/src/sweeper.rs +++ b/src/sweeper.rs @@ -1,23 +1,22 @@ -use tokio::task::JoinHandle; +use std::time::Duration; -pub fn spawn_sweeper() -> JoinHandle { - // Spawn a repeating task that will clean files periodically - tokio::spawn({ - let state = state.clone(); - async move { - loop { - tokio::time::sleep(Duration::from_secs(15 * 60)).await; - tracing::info!("Cleaning Sweep!"); +use crate::state::{AppState, AsyncRemoveRecord}; - let mut records = state.records.lock().await; +/// Spawn a repeating task that will clean files periodically +pub fn spawn_sweeper(state: AppState) { + tokio::spawn(async move { + loop { + tokio::time::sleep(Duration::from_secs(15 * 60)).await; + tracing::info!("Cleaning Sweep!"); - for (key, record) in records.clone().into_iter() { - if !record.can_be_downloaded() { - tracing::info!("culling: {:?}", record); - records.remove_record(&key).await.unwrap(); - } + let mut records = state.records.lock().await; + + for (key, record) in records.clone().into_iter() { + if !record.can_be_downloaded() { + tracing::info!("culling: {:?}", record); + records.remove_record(&key).await.unwrap(); } } } - }) + }); }