From 6bc7520ffcff743435236a706554341fe8fbeb03 Mon Sep 17 00:00:00 2001 From: Brendan Allan Date: Thu, 1 Jun 2023 13:28:07 +0200 Subject: [PATCH] [ENG-689] Delete jobs during resume that don't exist in code (#902) delete jobs during resume that don't exist in code --- core/src/job/job_manager.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/core/src/job/job_manager.rs b/core/src/job/job_manager.rs index 3948c89a4..1f09cb112 100644 --- a/core/src/job/job_manager.rs +++ b/core/src/job/job_manager.rs @@ -223,6 +223,15 @@ impl JobManager { } pub async fn resume_jobs(self: Arc, library: &Library) -> Result<(), JobManagerError> { + library + .db + .job() + .delete_many(vec![job::name::not_in_vec( + ALL_JOB_NAMES.into_iter().map(|s| s.to_string()).collect(), + )]) + .exec() + .await?; + for root_paused_job_report in library .db .job() @@ -563,3 +572,16 @@ fn get_resumable_job( ) .map_err(Into::into) } + +const ALL_JOB_NAMES: &[&str] = &[ + ThumbnailerJob::NAME, + IndexerJob::NAME, + FileIdentifierJob::NAME, + ObjectValidatorJob::NAME, + FileCutterJob::NAME, + FileCopierJob::NAME, + FileDeleterJob::NAME, + FileEraserJob::NAME, + FileEncryptorJob::NAME, + FileDecryptorJob::NAME, +];