26 lines
685 B
Rust
26 lines
685 B
Rust
use std::time::Duration;
|
|
|
|
use tokio::time::interval;
|
|
|
|
use crate::db::pool::get_conn;
|
|
|
|
pub async fn run_cleanup() {
|
|
let mut ticker = interval(Duration::from_secs(3600));
|
|
loop {
|
|
ticker.tick().await;
|
|
match get_conn().await {
|
|
Ok(client) => {
|
|
if let Err(e) = client
|
|
.execute("DELETE FROM sessions WHERE expires_at < NOW()", &[])
|
|
.await
|
|
{
|
|
tracing::error!("Session cleanup error: {:?}", e);
|
|
}
|
|
}
|
|
Err(e) => {
|
|
tracing::error!("Failed to get DB connection for cleanup: {:?}", e);
|
|
}
|
|
}
|
|
}
|
|
}
|