""" PIT Router 配置管理 """ import os from datetime import timedelta from dotenv import load_dotenv load_dotenv() class Config: """基础配置""" SECRET_KEY = os.environ.get('SECRET_KEY', 'dev-secret-key-change-in-production') JWT_SECRET_KEY = os.environ.get('JWT_SECRET_KEY', 'dev-jwt-secret-key-change-in-production') # 数据库 SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL', 'sqlite:///pit_router.db') SQLALCHEMY_TRACK_MODIFICATIONS = False SQLALCHEMY_ECHO = False # Redis REDIS_URL = os.environ.get('REDIS_URL', 'redis://localhost:6379/0') # JWT JWT_ACCESS_TOKEN_EXPIRES = timedelta( seconds=int(os.environ.get('JWT_ACCESS_TOKEN_EXPIRES', 86400)) ) JWT_REFRESH_TOKEN_EXPIRES = timedelta( seconds=int(os.environ.get('JWT_REFRESH_TOKEN_EXPIRES', 604800)) ) # Socket.IO SOCKETIO_PING_INTERVAL = int(os.environ.get('SOCKETIO_PING_INTERVAL', 25000)) SOCKETIO_PING_TIMEOUT = int(os.environ.get('SOCKETIO_PING_TIMEOUT', 10000)) # Agent 调度 SCHEDULER_STRATEGY = os.environ.get('SCHEDULER_STRATEGY', 'weighted_round_robin') SCHEDULER_TIMEOUT = int(os.environ.get('SCHEDULER_TIMEOUT', 30)) # 安全 RATE_LIMIT = int(os.environ.get('RATE_LIMIT', 100)) CORS_ORIGINS = os.environ.get('CORS_ORIGINS', '*') class DevelopmentConfig(Config): """开发环境配置""" DEBUG = True SQLALCHEMY_ECHO = True class ProductionConfig(Config): """生产环境配置""" DEBUG = False # 生产环境强制使用 PostgreSQL if not os.environ.get('DATABASE_URL'): raise ValueError("DATABASE_URL must be set in production") class TestingConfig(Config): """测试环境配置""" TESTING = True SQLALCHEMY_DATABASE_URI = 'sqlite:///:memory:' WTF_CSRF_ENABLED = False config = { 'development': DevelopmentConfig, 'production': ProductionConfig, 'testing': TestingConfig, 'default': DevelopmentConfig }