From 30a9056751ded40b4b7610e06bbbcff05f967945 Mon Sep 17 00:00:00 2001 From: ifui Date: Sun, 8 Jun 2025 17:06:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=AE=A1=E7=90=86=EF=BC=9A=E5=AE=9E=E7=8E=B0=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E5=90=AF=E5=8A=A8=E6=97=B6=E8=87=AA=E5=8A=A8=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E5=90=AF=E7=94=A8=E7=9A=84=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/main.py b/main.py index cf7dec4..bb58b3a 100644 --- a/main.py +++ b/main.py @@ -96,6 +96,27 @@ app = FastAPI( version="0.1.0", ) +# 在应用启动时加载所有启用的定时任务 +@app.on_event("startup") +async def load_scheduled_tasks(): + """系统启动时,自动将enabled为true的任务加入调度器""" + try: + db = SessionLocal() + enabled_tasks = db.query(ScheduledTask).filter(ScheduledTask.enabled == True).all() + + if enabled_tasks: + logger.info(f"正在加载 {len(enabled_tasks)} 个启用的定时任务...") + for task in enabled_tasks: + add_job_to_scheduler(task) + logger.info(f"已加载定时任务: {task.name} (ID: {task.id}, Cron: {task.cron_expression})") + else: + logger.info("没有找到启用的定时任务") + + except Exception as e: + logger.error(f"加载定时任务时出错: {str(e)}", exc_info=True) + finally: + db.close() + # 存储爬虫任务状态 spider_tasks = {}