From 67fd1134495fa89eff38bd9277a420478b363afa Mon Sep 17 00:00:00 2001 From: CaptainB Date: Tue, 29 Oct 2024 16:10:14 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E9=87=8D=E5=A4=8D=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E7=9A=84=E7=94=9F=E6=88=90=E4=BB=BB=E5=8A=A1=E5=BC=B9=E6=A1=86?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/dataset/serializers/document_serializers.py | 5 ++++- apps/dataset/serializers/paragraph_serializers.py | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/dataset/serializers/document_serializers.py b/apps/dataset/serializers/document_serializers.py index 03109fa4d..aa61b9469 100644 --- a/apps/dataset/serializers/document_serializers.py +++ b/apps/dataset/serializers/document_serializers.py @@ -977,7 +977,10 @@ class DocumentSerializers(ApiMixin, serializers.Serializer): self.is_valid(raise_exception=True) document_id = self.data.get('document_id') QuerySet(Document).filter(id=document_id).update(status=Status.queue_up) - generate_related_by_document_id.delay(document_id, model_id, prompt) + try: + generate_related_by_document_id.delay(document_id, model_id, prompt) + except AlreadyQueued as e: + raise AppApiException(500, "任务正在执行中,请勿重复下发") diff --git a/apps/dataset/serializers/paragraph_serializers.py b/apps/dataset/serializers/paragraph_serializers.py index 8e2a8e60b..6614d712a 100644 --- a/apps/dataset/serializers/paragraph_serializers.py +++ b/apps/dataset/serializers/paragraph_serializers.py @@ -9,6 +9,7 @@ import uuid from typing import Dict +from celery_once import AlreadyQueued from django.db import transaction from django.db.models import QuerySet from drf_yasg import openapi @@ -733,7 +734,10 @@ class ParagraphSerializers(ApiMixin, serializers.Serializer): paragraph_id_list = instance.get("paragraph_id_list") model_id = instance.get("model_id") prompt = instance.get("prompt") - generate_related_by_paragraph_id_list.delay(paragraph_id_list, model_id, prompt) + try: + generate_related_by_paragraph_id_list.delay(paragraph_id_list, model_id, prompt) + except AlreadyQueued as e: + raise AppApiException(500, "任务正在执行中,请勿重复下发")