From 6252e0425341ba2af1f7dbd513fef69d18861686 Mon Sep 17 00:00:00 2001 From: MingxuanGame Date: Thu, 2 Oct 2025 07:37:33 +0000 Subject: [PATCH] feat(beatmapset): add mechanism to prevent duplicate missing beatmapset additions --- app/service/beatmapset_update_service.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/service/beatmapset_update_service.py b/app/service/beatmapset_update_service.py index 5ced2fd..32c4052 100644 --- a/app/service/beatmapset_update_service.py +++ b/app/service/beatmapset_update_service.py @@ -123,6 +123,7 @@ class ProcessingBeatmapset: class BeatmapsetUpdateService: def __init__(self, fetcher: "Fetcher"): self.fetcher = fetcher + self._adding_missing = False async def add_missing_beatmapset(self, beatmapset_id: int) -> bool: beatmapset = await self.fetcher.get_beatmapset(beatmapset_id) @@ -136,6 +137,9 @@ class BeatmapsetUpdateService: return True async def add_missing_beatmapsets(self): + if self._adding_missing: + return + self._adding_missing = True async with with_db() as session: missings = await session.exec( select(Beatmapset.id).where( @@ -156,6 +160,7 @@ class BeatmapsetUpdateService: total += 1 if total > 0: logger.opt(colors=True).info(f"[BeatmapsetUpdateService] added {total} missing beatmapset") + self._adding_missing = False async def add(self, beatmapset: BeatmapsetResp): if (