feat: 初始提交
This commit is contained in:
21
backend/app/services/usage_service.py
Normal file
21
backend/app/services/usage_service.py
Normal file
@@ -0,0 +1,21 @@
|
||||
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
|
||||
Reference in New Issue
Block a user