MCPcopy Index your code
hub / github.com/Tencent/CodeAnalysis / _send_result

Method _send_result

client/node/servertask/looprunner.py:81–141  ·  view source on GitHub ↗

上传结果 :param task: 任务实例 :return:

(self, task)

Source from the content-addressed store, hash-verified

79 LogPrinter.info('terminate task %d by server', task_id)
80
81 def _send_result(self, task):
82 """
83 上传结果
84 :param task: 任务实例
85 :return:
86 """
87 """send task result to server"""
88 if task.code is None: # 分析正常完成的情况
89 with open(task.response_file, 'r') as fp:
90 task_response = json.load(fp)
91 code = task_response['status']
92 data = task_response['result']
93 msg = task_response['message']
94 node_task_version = task_response['task_version']
95
96 else: # 分析异常退出情况
97 code = task.code
98 data = task.data
99 msg = task.msg
100 node_task_version = IToolModel.version
101
102 LogPrinter.info('uploading task(%s) result(code:%d) to server', task.task_name, code)
103
104 # 上传分析结果
105 with open(task.request_file) as rf:
106 task_request = json.load(rf)
107 job_id = task_request['job']
108 task_dir = task_request["task_dir"]
109 execute_processes = task_request['execute_processes']
110 project_id = task_request['task_params'].get('project_id')
111
112 # 上报进度: 98% - 上传分析结果
113 Reporter(task_request['task_params']).update_task_progress(InfoType.SendResult)
114
115 try:
116 # 上传issues和log到文件服务器
117 data_url, log_url = ResultUploader().upload_result_detail(project_id, task.task_id, task_dir, data, task.task_log)
118 except FileServerError as err:
119 code = err.code
120 msg = f"Fail to send result to file server! Error: {err.msg}"
121 data_url = ""
122 log_url = ""
123 LogPrinter.error(msg)
124 except Exception as err: # 捕获其他异常,避免影响后续上报结果给server(导致server任务卡住无法结束)
125 code = E_NODE_TASK
126 msg = f"Fail to send result to file server! Error: {str(err)}"
127 data_url = ""
128 log_url = ""
129 LogPrinter.error(msg)
130
131 # 上报结果给server
132 self._server.send_task_result(task_request['task_params'], job_id, task.task_id, node_task_version, code, data_url, msg, log_url, execute_processes)
133
134 # 2019-11-18 注释掉,这里加了没用,上传完结果server端task已经不在运行
135 # util.exceptions.ResfulApiError: Error[218]: Error[400]: {"task":["指定Task已经不在运行中"]}
136 # # 上报进度: 100% - 任务完成
137 # Reporter(task_params).update_task_progress(InfoType.TaskDone)
138 LogPrinter.info('result upload finished')

Callers 1

_handle_exist_taskMethod · 0.95

Calls 7

ReporterClass · 0.90
errorMethod · 0.80
send_task_resultMethod · 0.80
loadMethod · 0.45
infoMethod · 0.45
getMethod · 0.45
update_task_progressMethod · 0.45

Tested by

no test coverage detected