fix(beatmapset): invalidate beatmapset and beatmap lookup caches after updates
This commit is contained in:
@@ -10,12 +10,14 @@ from app.database.beatmap import Beatmap, BeatmapResp
|
|||||||
from app.database.beatmap_sync import BeatmapSync, SavedBeatmapMeta
|
from app.database.beatmap_sync import BeatmapSync, SavedBeatmapMeta
|
||||||
from app.database.beatmapset import Beatmapset, BeatmapsetResp
|
from app.database.beatmapset import Beatmapset, BeatmapsetResp
|
||||||
from app.database.score import Score
|
from app.database.score import Score
|
||||||
from app.dependencies.database import with_db
|
from app.dependencies.database import get_redis, with_db
|
||||||
from app.dependencies.storage import get_storage_service
|
from app.dependencies.storage import get_storage_service
|
||||||
from app.log import logger
|
from app.log import logger
|
||||||
from app.models.beatmap import BeatmapRankStatus
|
from app.models.beatmap import BeatmapRankStatus
|
||||||
from app.utils import bg_tasks, utcnow
|
from app.utils import bg_tasks, utcnow
|
||||||
|
|
||||||
|
from .beatmapset_cache_service import get_beatmapset_cache_service
|
||||||
|
|
||||||
from httpx import HTTPError, HTTPStatusError
|
from httpx import HTTPError, HTTPStatusError
|
||||||
from sqlmodel import col, select
|
from sqlmodel import col, select
|
||||||
from sqlmodel.ext.asyncio.session import AsyncSession
|
from sqlmodel.ext.asyncio.session import AsyncSession
|
||||||
@@ -341,6 +343,7 @@ class BeatmapsetUpdateService:
|
|||||||
new_beatmapset = await Beatmapset.from_resp_no_save(beatmapset)
|
new_beatmapset = await Beatmapset.from_resp_no_save(beatmapset)
|
||||||
if db_beatmapset:
|
if db_beatmapset:
|
||||||
await session.merge(new_beatmapset)
|
await session.merge(new_beatmapset)
|
||||||
|
await get_beatmapset_cache_service(get_redis()).invalidate_beatmapset_cache(beatmapset.id)
|
||||||
await session.commit()
|
await session.commit()
|
||||||
|
|
||||||
async def _process_changed_beatmaps(self, changed: list[ChangedBeatmap], beatmaps_list: list[BeatmapResp]):
|
async def _process_changed_beatmaps(self, changed: list[ChangedBeatmap], beatmaps_list: list[BeatmapResp]):
|
||||||
@@ -397,6 +400,7 @@ class BeatmapsetUpdateService:
|
|||||||
await session.commit()
|
await session.commit()
|
||||||
if change.type != BeatmapChangeType.STATUS_CHANGED:
|
if change.type != BeatmapChangeType.STATUS_CHANGED:
|
||||||
await _process_update_or_delete_beatmaps(change.beatmap_id)
|
await _process_update_or_delete_beatmaps(change.beatmap_id)
|
||||||
|
await get_beatmapset_cache_service(get_redis()).invalidate_beatmap_lookup_cache(change.beatmap_id)
|
||||||
|
|
||||||
|
|
||||||
service: BeatmapsetUpdateService | None = None
|
service: BeatmapsetUpdateService | None = None
|
||||||
|
|||||||
Reference in New Issue
Block a user