fix
All checks were successful
Deploy Dev / Build (pull_request) Successful in 6s
Deploy Dev / Push (pull_request) Successful in 8s
Deploy Dev / Deploy dev (pull_request) Successful in 11s

This commit is contained in:
2024-12-02 21:41:37 +03:00
parent 6e8a1540b4
commit 31d98b67cf
11 changed files with 94 additions and 31 deletions

View File

@@ -1,9 +1,7 @@
import datetime
import fastapi
import pydantic
from app.storage.mongo import locks
from app.utils import time
class RequestBody(pydantic.BaseModel):
@@ -17,7 +15,6 @@ router = fastapi.APIRouter()
@router.post('/api/v1/acquire', status_code=fastapi.status.HTTP_202_ACCEPTED, responses={'409': {'description': 'Conflict'}})
async def execute(body: RequestBody):
try:
await locks.acquire(locks.Lock(name=body.name, locked_until=time.now() + datetime.timedelta(seconds=body.ttl)))
except Exception as e:
print(e)
await locks.acquire(body.name, ttl=body.ttl)
except locks.ConflictException:
raise fastapi.HTTPException(409)

View File

@@ -16,4 +16,4 @@ router = fastapi.APIRouter()
@router.post('/api/v1/release', status_code=fastapi.status.HTTP_202_ACCEPTED)
async def execute(body: RequestBody):
await locks.release(locks.Lock(name=body.name, locked_until=time.now() + datetime.timedelta(seconds=body.ttl)))
await locks.release(body.name)