From 91fac9b720a6c6ad1859ee1d24a3db19ae65e4c5 Mon Sep 17 00:00:00 2001 From: QuantumGhost Date: Fri, 29 Aug 2025 14:51:07 +0800 Subject: [PATCH] WIP: feat(api): draft var cleanup task --- api/tasks/workflow_draft_var_tasks.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 api/tasks/workflow_draft_var_tasks.py diff --git a/api/tasks/workflow_draft_var_tasks.py b/api/tasks/workflow_draft_var_tasks.py new file mode 100644 index 0000000000..457d46a9d8 --- /dev/null +++ b/api/tasks/workflow_draft_var_tasks.py @@ -0,0 +1,27 @@ +""" +Celery tasks for asynchronous workflow execution storage operations. + +These tasks provide asynchronous storage capabilities for workflow execution data, +improving performance by offloading storage operations to background workers. +""" + +import logging + +from celery import shared_task # type: ignore[import-untyped] +from sqlalchemy.orm import Session + +from extensions.ext_database import db + +_logger = logging.getLogger(__name__) + +from services.workflow_draft_variable_service import DraftVarFileDeletion, WorkflowDraftVariableService + + +@shared_task(queue="workflow_draft_var", bind=True, max_retries=3, default_retry_delay=60) +def save_workflow_execution_task( + self, + deletions: list[DraftVarFileDeletion], +): + with Session(bind=db.engine) as session, session.begin(): + srv = WorkflowDraftVariableService(session=session) + srv.delete_workflow_draft_variable_file(deletions=deletions)