Przeglądaj źródła

修改定时任务执行逻辑

xueyiming 1 tydzień temu
rodzic
commit
2b4dab2ddf
1 zmienionych plików z 6 dodań i 3 usunięć
  1. 6 3
      supply_infra/scheduler/app.py

+ 6 - 3
supply_infra/scheduler/app.py

@@ -45,7 +45,10 @@ def create_scheduler() -> BackgroundScheduler:
 
 def _log_next_runs(scheduler: BaseScheduler) -> None:
     for job in scheduler.get_jobs():
-        logger.info("  - %s | next run: %s", job.name, job.next_run_time)
+        # apscheduler 3.x: 在 scheduler.start() 之前,Job.next_run_time 访问会抛 AttributeError
+        # 这里用 getattr 兜底,保证启动阶段不因日志而中断。
+        next_run_time = getattr(job, "next_run_time", None)
+        logger.info("  - %s | next run: %s", job.name, next_run_time)
 
 
 def start_scheduler() -> BackgroundScheduler | None:
@@ -62,8 +65,8 @@ def start_scheduler() -> BackgroundScheduler | None:
 
     _scheduler = create_scheduler()
     logger.info("Starting scheduler...")
-    _log_next_runs(_scheduler)
     _scheduler.start()
+    _log_next_runs(_scheduler)
     return _scheduler
 
 
@@ -88,7 +91,7 @@ def get_scheduler_status() -> dict:
 
     jobs = []
     for job in _scheduler.get_jobs():
-        next_run = job.next_run_time
+        next_run = getattr(job, "next_run_time", None)
         jobs.append(
             {
                 "id": job.id,