(self)
| 52 | self.runtime_logs.log_system_event( |
| 53 | stage="scheduler", |
| 54 | status="stopped", |
| 55 | message="调度器已停止", |
| 56 | ) |
| 57 | |
| 58 | def _run_loop(self) -> None: |
| 59 | while not self._stop_event.is_set(): |
| 60 | try: |
| 61 | self.poll_once() |
| 62 | except Exception as exc: # pragma: no cover - defensive scheduler guard |
| 63 | logger.exception("scheduler poll failed: %s", exc) |
| 64 | self.runtime_logs.log_system_event( |
| 65 | stage="scheduler_poll", |
| 66 | status="failed", |
| 67 | message=f"调度器轮询失败:{exc}", |
| 68 | details={"error": exc.__class__.__name__}, |
| 69 | level=logging.ERROR, |
no test coverage detected