From cd9e7ef12c3a6479c361edafa7fa85adb4d628ac Mon Sep 17 00:00:00 2001 From: Xuwznln <18435084+Xuwznln@users.noreply.github.com> Date: Fri, 11 Jul 2025 16:30:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E6=84=8F=E6=89=A7=E8=A1=8C=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E9=83=BD=E5=BA=94=E8=AF=A5=E8=BF=94=E5=9B=9Efailed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- unilabos/app/controler.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/unilabos/app/controler.py b/unilabos/app/controler.py index 730578e..7a74691 100644 --- a/unilabos/app/controler.py +++ b/unilabos/app/controler.py @@ -1,8 +1,10 @@ import json +import traceback import uuid from unilabos.app.model import JobAddReq, JobData from unilabos.ros.nodes.presets.host_node import HostNode +from unilabos.utils.type_check import serialize_result_info def get_resources() -> tuple: @@ -33,5 +35,10 @@ def job_add(req: JobAddReq) -> JobData: if "command" in action_args: action_args = action_args["command"] # print(f"job_add:{req.device_id} {action_name} {action_kwargs}") - HostNode.get_instance().send_goal(req.device_id, action_type=action_type, action_name=action_name, action_kwargs=action_args, goal_uuid=req.job_id, server_info=req.server_info) + try: + HostNode.get_instance().send_goal(req.device_id, action_type=action_type, action_name=action_name, action_kwargs=action_args, goal_uuid=req.job_id, server_info=req.server_info) + except Exception as e: + for bridge in HostNode.get_instance().bridges: + if hasattr(bridge, "publish_job_status"): + bridge.publish_job_status({}, req.job_id, "failed", serialize_result_info(traceback.format_exc(), False, {})) return JobData(jobId=req.job_id)