Raver | afc93da | 2025-06-15 18:12:49 +0800 | [diff] [blame] | 1 | from flask import Flask |
| 2 | from flask_cors import CORS |
TRM-coding | 3127efa | 2025-06-18 22:54:25 +0800 | [diff] [blame^] | 3 | import atexit |
| 4 | import logging |
Raver | afc93da | 2025-06-15 18:12:49 +0800 | [diff] [blame] | 5 | |
| 6 | def create_app(): |
| 7 | app = Flask(__name__) |
| 8 | |
| 9 | # 启用CORS支持跨域请求 |
| 10 | CORS(app) |
| 11 | |
| 12 | # Load configuration |
| 13 | app.config.from_object('config.Config') |
| 14 | |
| 15 | # Register blueprints or routes |
| 16 | from .routes import main as main_blueprint |
| 17 | app.register_blueprint(main_blueprint) |
Raver | d789517 | 2025-06-18 17:54:38 +0800 | [diff] [blame] | 18 | |
| 19 | # Register recommendation blueprint |
| 20 | from .blueprints.recommend import recommend_bp |
| 21 | app.register_blueprint(recommend_bp) |
TRM-coding | 3127efa | 2025-06-18 22:54:25 +0800 | [diff] [blame^] | 22 | |
| 23 | # Register scheduler blueprint |
| 24 | from .blueprints.scheduler import scheduler_bp |
| 25 | app.register_blueprint(scheduler_bp) |
| 26 | |
| 27 | # 初始化定时任务管理器 |
| 28 | from .utils.scheduler_manager import SchedulerManager |
| 29 | |
| 30 | scheduler_manager = SchedulerManager() |
| 31 | scheduler_manager.init_scheduler(app) |
| 32 | |
| 33 | # 检查是否启用定时任务 |
| 34 | scheduler_enabled = getattr(app.config, 'SCHEDULER_ENABLED', True) |
| 35 | if scheduler_enabled: |
| 36 | # 从配置获取重建间隔 |
| 37 | rebuild_interval = getattr(app.config, 'GRAPH_REBUILD_INTERVAL', 1) |
| 38 | scheduler_manager.start_graph_rebuild_task(interval_minutes=rebuild_interval) |
| 39 | |
| 40 | # 注册关闭时的清理函数 |
| 41 | atexit.register(lambda: scheduler_manager.shutdown()) |
Raver | afc93da | 2025-06-15 18:12:49 +0800 | [diff] [blame] | 42 | |
| 43 | return app |
| 44 | |
| 45 | app = create_app() |