blob: 098898cd0192921c408f84e5cb1ee0da38b3730c [file] [log] [blame]
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()