| from flask import Flask |
| from flask_cors import CORS |
| import atexit |
| import logging |
| |
| def create_app(): |
| app = Flask(__name__) |
| |
| # 启用CORS支持跨域请求 |
| CORS(app) |
| |
| # Load configuration |
| app.config.from_object('config.Config') |
| |
| # Register blueprints or routes |
| from .routes import main as main_blueprint |
| app.register_blueprint(main_blueprint) |
| |
| # Register recommendation blueprint |
| from .blueprints.recommend import recommend_bp |
| app.register_blueprint(recommend_bp) |
| |
| # Register scheduler blueprint |
| from .blueprints.scheduler import scheduler_bp |
| app.register_blueprint(scheduler_bp) |
| |
| # 初始化定时任务管理器 |
| from .utils.scheduler_manager import SchedulerManager |
| |
| scheduler_manager = SchedulerManager() |
| scheduler_manager.init_scheduler(app) |
| |
| # 检查是否启用定时任务 |
| scheduler_enabled = getattr(app.config, 'SCHEDULER_ENABLED', True) |
| if scheduler_enabled: |
| # 从配置获取重建间隔 |
| rebuild_interval = getattr(app.config, 'GRAPH_REBUILD_INTERVAL', 1) |
| scheduler_manager.start_graph_rebuild_task(interval_minutes=rebuild_interval) |
| |
| # 注册关闭时的清理函数 |
| atexit.register(lambda: scheduler_manager.shutdown()) |
| |
| return app |
| |
| app = create_app() |