diff options
author | Joris | 2023-04-17 21:10:48 +0200 |
---|---|---|
committer | Joris | 2023-04-17 21:10:48 +0200 |
commit | 459016e70dd4933a8082d27748097de81a3e53ff (patch) | |
tree | 0ed14ecc8762d62a55bf8c05356bcc984b1a0cea /src/jobs/mod.rs | |
parent | 3932daa26360d6e03807381d0b8ffa2d0e704847 (diff) | |
download | budget-459016e70dd4933a8082d27748097de81a3e53ff.tar.gz budget-459016e70dd4933a8082d27748097de81a3e53ff.tar.bz2 budget-459016e70dd4933a8082d27748097de81a3e53ff.zip |
Follow clippy indications
Diffstat (limited to 'src/jobs/mod.rs')
-rw-r--r-- | src/jobs/mod.rs | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/jobs/mod.rs b/src/jobs/mod.rs index be2ddac..5f95597 100644 --- a/src/jobs/mod.rs +++ b/src/jobs/mod.rs @@ -1,2 +1,29 @@ -pub mod jobs; mod weekly_report; + +use sqlx::sqlite::SqlitePool; +use tera::Tera; +use tokio::time::{sleep, Duration}; + +use crate::db; +use crate::model::config::Config; +use crate::model::job::Job; + +pub async fn start(config: Config, pool: SqlitePool, templates: Tera) { + loop { + if db::jobs::should_run(&pool, Job::WeeklyReport).await { + info!("Starting weekly report job"); + if weekly_report::send(&config, &pool, &templates).await { + db::jobs::actualize_last_execution(&pool, Job::WeeklyReport) + .await; + } + } + if db::jobs::should_run(&pool, Job::MonthlyPayment).await { + info!("Starting monthly payment job"); + db::payments::create_monthly_payments(&pool).await; + db::jobs::actualize_last_execution(&pool, Job::MonthlyPayment) + .await; + } + // Sleeping 8 hours + sleep(Duration::from_secs(8 * 60 * 60)).await; + } +} |