From 326a1883e89a94c43465773fedeb5feee4dc6d3b Mon Sep 17 00:00:00 2001 From: Wu Clan Date: Wed, 16 Jul 2025 12:10:33 +0800 Subject: [PATCH] Fix the parsing of execution task params (#725) * Fix the parsing of execution task params * Enhanced checksums --- backend/app/task/service/scheduler_service.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/backend/app/task/service/scheduler_service.py b/backend/app/task/service/scheduler_service.py index 712fd8d1..8c472101 100644 --- a/backend/app/task/service/scheduler_service.py +++ b/backend/app/task/service/scheduler_service.py @@ -148,11 +148,13 @@ class TaskSchedulerService: task_scheduler = await task_scheduler_dao.get(db, pk) if not task_scheduler: raise errors.NotFoundError(msg='任务调度不存在') - celery_app.send_task( - name=task_scheduler.task, - args=json.loads(task_scheduler.args), - kwargs=json.loads(task_scheduler.kwargs), - ) + try: + args = json.loads(task_scheduler.args) if task_scheduler.args else None + kwargs = json.loads(task_scheduler.kwargs) if task_scheduler.kwargs else None + except (TypeError, json.JSONDecodeError): + raise errors.RequestError(msg='执行失败,任务参数非法') + else: + celery_app.send_task(name=task_scheduler.task, args=args, kwargs=kwargs) @staticmethod async def revoke(*, task_id: str) -> None: