Skip to main content

apalis_sqlite/queries/
vacuum.rs

1use std::time::Duration;
2
3use apalis_core::backend::{Backend, Vacuum};
4
5use crate::{Error, SqliteStorage};
6
7impl<Args> Vacuum for SqliteStorage<Args>
8where
9    Self: Backend<Error = Error>,
10    Args: Send,
11{
12    async fn vacuum(&mut self) -> Result<usize, Self::Error> {
13        let res = sqlx::query_file!("queries/backend/vacuum.sql")
14            .execute(&self.persistence.pool)
15            .await?;
16        Ok(res.rows_affected() as usize)
17    }
18
19    async fn vacuum_before(&mut self, duration: Duration) -> Result<usize, Self::Error> {
20        let res = sqlx::query_file!(
21            "queries/backend/vacuum_before.sql",
22            duration.as_secs() as i64
23        )
24        .execute(&self.persistence.pool)
25        .await?;
26        Ok(res.rows_affected() as usize)
27    }
28}