31 lines
800 B
Rust

use crate::app_config::AppConfig;
use crate::services::{files_service, tokens_service};
use std::time::Duration;
/// The "cron" of the project
pub async fn main_routine() {
loop {
tokio::time::sleep(Duration::from_secs(AppConfig::get().routine_interval)).await;
log::info!("Start to execute regular routine");
match exec_routine().await {
Ok(_) => {
log::info!("Routine successfully executed")
}
Err(e) => {
log::error!("Failed to execute routine! {e}");
}
}
}
}
async fn exec_routine() -> anyhow::Result<()> {
// Remove orphan attachments
files_service::run_garbage_collector().await?;
// Remove expired tokens
tokens_service::cleanup().await?;
Ok(())
}