refactor(repositories): add a locking mechanism for restic operations (#94)

* refactor(repositories): add a locking mechanism for restic operations

* fix: add missing lock in list repositories
This commit is contained in:
Nico
2025-12-01 19:47:21 +01:00
committed by GitHub
parent 999850dab8
commit 9b46737852
14 changed files with 346 additions and 126 deletions

View File

@@ -4,6 +4,7 @@ import { logger } from "../utils/logger";
import { db } from "../db/db";
import { eq, or } from "drizzle-orm";
import { repositoriesTable } from "../db/schema";
import { repoMutex } from "../core/repository-mutex";
export class RepositoryHealthCheckJob extends Job {
async run() {
@@ -14,6 +15,11 @@ export class RepositoryHealthCheckJob extends Job {
});
for (const repository of repositories) {
if (repoMutex.isLocked(repository.id)) {
logger.debug(`Skipping health check for repository ${repository.name}: currently locked`);
continue;
}
try {
await repositoriesService.checkHealth(repository.id);
} catch (error) {