Files
assist/src/core/performance_config.py

90 lines
2.9 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
"""
性能优化配置
集中管理所有性能相关的配置参数
"""
class PerformanceConfig:
"""性能配置类"""
# 数据库连接池配置
DATABASE_POOL_SIZE = 20
DATABASE_MAX_OVERFLOW = 30
DATABASE_POOL_RECYCLE = 1800
DATABASE_POOL_TIMEOUT = 10
# 缓存配置
CACHE_DEFAULT_TTL = 60 # 默认缓存时间(秒)
CACHE_MAX_MEMORY_SIZE = 2000 # 最大内存缓存条目数
CACHE_CONVERSATION_TTL = 60 # 对话缓存时间
CACHE_WORKORDER_TTL = 30 # 工单缓存时间
CACHE_MONITORING_TTL = 30 # 监控数据缓存时间
# 查询优化配置
QUERY_LIMIT_DEFAULT = 100 # 默认查询限制
QUERY_LIMIT_CONVERSATIONS = 1000 # 对话查询限制
QUERY_LIMIT_WORKORDERS = 100 # 工单查询限制
QUERY_LIMIT_MONITORING = 1000 # 监控查询限制
# 前端缓存配置
FRONTEND_CACHE_TIMEOUT = 30000 # 前端缓存时间(毫秒)
FRONTEND_PARALLEL_LOADING = True # 是否启用并行加载
# API响应优化
API_TIMEOUT = 10 # API超时时间
API_RETRY_COUNT = 3 # API重试次数
API_BATCH_SIZE = 50 # 批量操作大小
# 系统监控配置
MONITORING_INTERVAL = 60 # 监控间隔(秒)
SLOW_QUERY_THRESHOLD = 1.0 # 慢查询阈值(秒)
PERFORMANCE_LOG_ENABLED = True # 是否启用性能日志
@classmethod
def get_database_config(cls):
"""获取数据库配置"""
return {
'pool_size': cls.DATABASE_POOL_SIZE,
'max_overflow': cls.DATABASE_MAX_OVERFLOW,
'pool_recycle': cls.DATABASE_POOL_RECYCLE,
'pool_timeout': cls.DATABASE_POOL_TIMEOUT
}
@classmethod
def get_cache_config(cls):
"""获取缓存配置"""
return {
'default_ttl': cls.CACHE_DEFAULT_TTL,
'max_memory_size': cls.CACHE_MAX_MEMORY_SIZE,
'conversation_ttl': cls.CACHE_CONVERSATION_TTL,
'workorder_ttl': cls.CACHE_WORKORDER_TTL,
'monitoring_ttl': cls.CACHE_MONITORING_TTL
}
@classmethod
def get_query_config(cls):
"""获取查询配置"""
return {
'default_limit': cls.QUERY_LIMIT_DEFAULT,
'conversations_limit': cls.QUERY_LIMIT_CONVERSATIONS,
'workorders_limit': cls.QUERY_LIMIT_WORKORDERS,
'monitoring_limit': cls.QUERY_LIMIT_MONITORING
}
@classmethod
def get_frontend_config(cls):
"""获取前端配置"""
return {
'cache_timeout': cls.FRONTEND_CACHE_TIMEOUT,
'parallel_loading': cls.FRONTEND_PARALLEL_LOADING
}
@classmethod
def get_api_config(cls):
"""获取API配置"""
return {
'timeout': cls.API_TIMEOUT,
'retry_count': cls.API_RETRY_COUNT,
'batch_size': cls.API_BATCH_SIZE
}