introduces low/high priority queue and custom concurrency

This commit is contained in:
msramalho
2025-02-12 13:24:11 +00:00
parent 119faf330d
commit f587a17a93
11 changed files with 59 additions and 16 deletions

View File

@@ -75,6 +75,7 @@ def archive_user_sheet(
if not user.can_manually_trigger(sheet.group_id):
raise HTTPException(status_code=429, detail="User cannot manually trigger sheet archiving in this group.")
task = celery.signature("create_sheet_task", args=[schemas.SubmitSheet(sheet_id=id, author_id=user.email, group_id=sheet.group_id).model_dump_json()]).delay()
group_queue = user.priority_group(sheet.group_id)
task = celery.signature("create_sheet_task", args=[schemas.SubmitSheet(sheet_id=id, author_id=user.email, group_id=sheet.group_id).model_dump_json()]).apply_async(**group_queue)
return JSONResponse({"id": task.id}, status_code=201)

View File

@@ -43,7 +43,8 @@ def archive_url(
archive_create = schemas.ArchiveCreate(**archive.model_dump())
task = celery.signature("create_archive_task", args=[archive_create.model_dump_json()]).delay()
group_queue = user.priority_group(archive_create.group_id)
task = celery.signature("create_archive_task", args=[archive_create.model_dump_json()]).apply_async(**group_queue)
task_response = schemas.Task(id=task.id)
return JSONResponse(task_response.model_dump(), status_code=201)