diff --git a/janitor/src/clean.rs b/janitor/src/clean.rs index d84bee6..89f9bae 100644 --- a/janitor/src/clean.rs +++ b/janitor/src/clean.rs @@ -13,6 +13,14 @@ async fn check_key(key: String, mut client: redis::Client) -> bool { let val: String = client.get(key.clone()).unwrap(); let file: File = serde_json::from_str(val.as_str()).unwrap(); + if file.expired() { + #[cfg(debug_assertions)] { + log::debug!("Object {key} is marked for deletion because it has expired"); + } + client.del::(key).unwrap(); + return true; + } + if ! Path::new(&file.path.clone()).exists() { #[cfg(debug_assertions)] { log::debug!("Object {key} is marked for deletion because it doesn't exist in the filesystem"); @@ -23,6 +31,9 @@ async fn check_key(key: String, mut client: redis::Client) -> bool { let stat = tokio::fs::metadata(file.clone().path).await.unwrap(); if ! stat.is_file() { + #[cfg(debug_assertions)] { + log::debug!("Object {key} is marked for deletion because it exists in the filesystem, but is not a file"); + } client.del::(key).unwrap(); return true; } diff --git a/janitor/src/main.rs b/janitor/src/main.rs index 41f6fab..debf2fb 100644 --- a/janitor/src/main.rs +++ b/janitor/src/main.rs @@ -36,13 +36,15 @@ async fn main() { if res.is_err() { log::error!("Error while cleaning: {}", res.unwrap_err()); log::error!("Retrying in {}", std::env::var("CLEAN_ERRDEL").unwrap()); + log::debug!("Next clean will run at {}", chrono::Local::now() + env.clean_errdel); tokio::time::sleep(envy.clean_errdel).await; continue; } #[cfg(debug_assertions)] { log::debug!("Cleaned successfully"); - log::debug!("Next clean is scheduled in {}", std::env::var("CLEAN_DEL").unwrap()) + log::debug!("Next clean is scheduled in {}", std::env::var("CLEAN_DEL").unwrap()); + log::debug!("Next clean will run at {}", chrono::Local::now() + env.clean_del); } tokio::time::sleep(envy.clean_errdel).await;