(self, req, reason_code="LINK_INTERRUPTED")
| 1216 | return result |
| 1217 | |
| 1218 | def _interrupt_request(self, req, reason_code="LINK_INTERRUPTED"): |
| 1219 | req.status = "rejected" |
| 1220 | req.reject_reason = REJECTION_REASONS[reason_code] |
| 1221 | self._record_rejection(reason_code) |
| 1222 | if req in self.transmission_requests: |
| 1223 | self.transmission_requests.remove(req) |
| 1224 | self.request_history.append(req) |
| 1225 | self.stats["transmitting_requests"] = max(0, self.stats.get("transmitting_requests", 0) - 1) |
| 1226 | self.stats["rejected_requests"] += 1 |
| 1227 | self._release_resources(req.id) |
| 1228 | # 记录链路中断的决策轨迹 |
| 1229 | _interrupt_trace = build_trace_from_link_selection( |
| 1230 | req=req, |
| 1231 | satellite_id=req.satellite_id or "", |
| 1232 | sim_time=self.current_time, |
| 1233 | all_candidates=[], |
| 1234 | selected_link=None, |
| 1235 | outcome="rejected", |
| 1236 | reject_reason=REJECTION_REASONS[reason_code], |
| 1237 | ) |
| 1238 | self.decision_trace_buffer.add(_interrupt_trace) |
| 1239 | |
| 1240 | def submit_request(self, request_data): |
| 1241 | """提交用户传输请求 - 基于实时资源占用决策""" |
no test coverage detected