Files
arboris-novel/backend/app/services/usage_service.py
2025-10-21 09:51:27 +08:00

22 lines
680 B
Python

from sqlalchemy.ext.asyncio import AsyncSession
from ..repositories.usage_metric_repository import UsageMetricRepository
class UsageService:
"""通用计数服务,目前用于统计 API 请求次数等。"""
def __init__(self, session: AsyncSession):
self.session = session
self.repo = UsageMetricRepository(session)
async def increment(self, key: str) -> None:
counter = await self.repo.get_or_create(key)
counter.value += 1
await self.session.commit()
async def get_value(self, key: str) -> int:
counter = await self.repo.get_or_create(key)
await self.session.commit()
return counter.value