This commit is contained in:
ITQ
2025-03-02 23:28:14 +03:00
parent 8259ba1916
commit 121c29c2f3
7 changed files with 55 additions and 23 deletions
+3 -3
View File
@@ -19,6 +19,7 @@ from apps.task.models import (
CompetitionTaskAttachment,
CompetitionTaskSubmission,
)
from apps.task.tasks import analyze_data_task
router = Router(tags=["competition"])
@@ -123,6 +124,7 @@ def submit_task(
status=CompetitionTaskSubmission.StatusChoices.CHECKING,
content=content,
)
analyze_data_task.delay(submission_id=submission.id)
return TaskSubmissionOut(submission_id=submission.id)
@@ -154,6 +156,4 @@ def get_submissions_history(request, competition_id: UUID, task_id: UUID):
)
def get_task_attachments(request, competition_id: UUID, task_id: UUID):
task = get_object_or_404(CompetitionTask, id=task_id)
return status.OK, CompetitionTaskAttachment.objects.filter(
task=task
).all()
return status.OK, CompetitionTaskAttachment.objects.filter(task=task).all()
+4 -4
View File
@@ -1,4 +1,4 @@
import requests
import httpx
from celery import shared_task
from django.core.files.base import ContentFile
@@ -17,7 +17,7 @@ def analyze_data_task(self, submission_id):
for f in submission.task.attachments.filter(public=True)
]
response = requests.post(
response = httpx.post(
f"{settings.CHECKER_API_ENDPOINT}/execute",
files=[("files", (f.name, f)) for f in files]
+ [
@@ -40,10 +40,10 @@ def analyze_data_task(self, submission_id):
)
submission.status = CompetitionTaskSubmission.StatusChoices.CHECKED
except requests.exceptions.RequestException as e:
except httpx.RequestError as e:
self.retry(countdown=2**self.request.retries)
except Exception as e:
submission.result = {"error": str(e)}
submission.result = {"error": str(e), "success": False}
submission.status = CompetitionTaskSubmission.StatusChoices.CHECKED
submission.earned_points = 0
finally: