From be5346673964826f476df869f73f9096244bf016 Mon Sep 17 00:00:00 2001 From: Nico <47644445+nicotsx@users.noreply.github.com> Date: Sat, 13 Dec 2025 23:47:41 +0100 Subject: [PATCH] fix: same time backups run multiple times (#134) --- app/server/jobs/backup-execution.ts | 6 ++---- app/server/modules/backups/backups.service.ts | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/server/jobs/backup-execution.ts b/app/server/jobs/backup-execution.ts index 15802b09..821333ef 100644 --- a/app/server/jobs/backup-execution.ts +++ b/app/server/jobs/backup-execution.ts @@ -17,11 +17,9 @@ export class BackupExecutionJob extends Job { logger.info(`Found ${scheduleIds.length} backup schedule(s) to execute`); for (const scheduleId of scheduleIds) { - try { - await backupsService.executeBackup(scheduleId); - } catch (error) { + backupsService.executeBackup(scheduleId).catch((error) => { logger.error(`Failed to execute backup for schedule ${scheduleId}: ${toMessage(error)}`); - } + }); } return { done: true, timestamp: new Date(), executed: scheduleIds.length }; diff --git a/app/server/modules/backups/backups.service.ts b/app/server/modules/backups/backups.service.ts index a95fc738..59561a61 100644 --- a/app/server/modules/backups/backups.service.ts +++ b/app/server/modules/backups/backups.service.ts @@ -370,7 +370,7 @@ const executeBackup = async (scheduleId: number, manual = false) => { const getSchedulesToExecute = async () => { const now = Date.now(); const schedules = await db.query.backupSchedulesTable.findMany({ - where: eq(backupSchedulesTable.enabled, true), + where: and(eq(backupSchedulesTable.enabled, true), ne(backupSchedulesTable.lastBackupStatus, "in_progress")), }); const schedulesToRun: number[] = [];