mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-06-28 03:02:34 +08:00
fix
This commit is contained in:
@@ -69,8 +69,8 @@ class ConfigModel(BaseModel):
|
||||
DB_MAX_OVERFLOW: int = 500
|
||||
# SQLite 的 busy_timeout 参数,默认为 60 秒
|
||||
DB_TIMEOUT: int = 60
|
||||
# SQLite 是否启用 WAL 模式,默认关闭
|
||||
DB_WAL_ENABLE: bool = False
|
||||
# SQLite 是否启用 WAL 模式,默认开启
|
||||
DB_WAL_ENABLE: bool = True
|
||||
# 缓存类型,支持 cachetools 和 redis,默认使用 cachetools
|
||||
CACHE_BACKEND_TYPE: str = "cachetools"
|
||||
# 缓存连接字符串,仅外部缓存(如 Redis、Memcached)需要
|
||||
|
||||
@@ -324,66 +324,3 @@ class MemoryHelper(metaclass=Singleton):
|
||||
return f"{obj_type_name}(描述生成失败):{e}"
|
||||
except Exception as e:
|
||||
return f"未知对象(描述生成失败):{e}"
|
||||
|
||||
def get_current_memory_info(self) -> dict:
|
||||
"""
|
||||
获取当前内存使用信息
|
||||
:return: 内存使用信息字典
|
||||
"""
|
||||
try:
|
||||
# 获取当前进程内存使用
|
||||
current_memory = psutil.Process().memory_info().rss
|
||||
|
||||
# 获取对象统计
|
||||
all_objects = muppy.get_objects()
|
||||
sum1 = summary.summarize(all_objects)
|
||||
|
||||
memory_info = {
|
||||
"current_memory_mb": round(current_memory / 1024 / 1024, 2),
|
||||
"object_count": len(all_objects),
|
||||
"top_objects": [],
|
||||
"largest_objects": []
|
||||
}
|
||||
|
||||
# 解析对象统计信息
|
||||
formatted_lines = list(summary.format_(sum1))
|
||||
for line in formatted_lines:
|
||||
parts = line.split('|')
|
||||
if len(parts) >= 3 and not line.startswith('=') and not line.startswith(' types'):
|
||||
# 解析格式: "type_name | count | size"
|
||||
type_name = parts[0].strip()
|
||||
count_str = parts[1].strip()
|
||||
size_str = parts[2].strip()
|
||||
|
||||
# 跳过表头和分隔线
|
||||
if type_name and count_str.isdigit():
|
||||
# 解析大小(可能包含单位)
|
||||
size_mb = 0
|
||||
if 'MB' in size_str:
|
||||
size_mb = float(size_str.replace('MB', '').strip())
|
||||
elif 'KB' in size_str:
|
||||
size_mb = float(size_str.replace('KB', '').strip()) / 1024
|
||||
elif 'B' in size_str:
|
||||
size_mb = float(size_str.replace('B', '').strip()) / 1024 / 1024
|
||||
|
||||
memory_info["top_objects"].append({
|
||||
"type": type_name,
|
||||
"count": count_str,
|
||||
"size_mb": round(size_mb, 2)
|
||||
})
|
||||
|
||||
# 只取前10个有效对象
|
||||
if len(memory_info["top_objects"]) >= 10:
|
||||
break
|
||||
|
||||
# 获取最大对象信息
|
||||
try:
|
||||
memory_info["largest_objects"] = self._get_largest_objects(10)
|
||||
except Exception as e:
|
||||
logger.warning(f"获取大对象列表失败: {e}")
|
||||
memory_info["largest_objects"] = []
|
||||
|
||||
return memory_info
|
||||
except Exception as e:
|
||||
logger.error(f"获取内存信息失败: {e}")
|
||||
return {"error": str(e)}
|
||||
|
||||
@@ -5,18 +5,8 @@
|
||||
HOST=0.0.0.0
|
||||
# 【*】超级管理员,设置后一但重启将固化到数据库中,修改将无效(初始化超级管理员密码仅会生成一次,请在日志中查看并自行登录系统修改)
|
||||
SUPERUSER=admin
|
||||
# 重启自动升级 release/dev/true/false
|
||||
MOVIEPILOT_AUTO_UPDATE=release
|
||||
# 自动检查和更新站点资源包(索引、认证等)
|
||||
AUTO_UPDATE_RESOURCE=true
|
||||
# 网络代理服务器地址 http(s)://ip:port、socks5://user:pass@host:port、socks5h://user:pass@host:port
|
||||
PROXY_HOST=
|
||||
# 媒体识别来源 themoviedb/douban,使用themoviedb时需要确保能正常连接api.themoviedb.org,使用douban时不支持二级分类
|
||||
RECOGNIZE_SOURCE=themoviedb
|
||||
# OCR服务器地址
|
||||
OCR_HOST=https://movie-pilot.org
|
||||
# 搜索多个名称,true/false,为true时搜索时会同时搜索中英文及原始名称,搜索结果会更全面,但会增加搜索时间;为false时其中一个名称搜索到结果或全部名称搜索完毕即停止
|
||||
SEARCH_MULTIPLE_NAME=false
|
||||
# 开发调试模式,仅开发人员使用,打开后将停止后台服务
|
||||
DEV=false
|
||||
# 为指定字幕添加.default后缀设置为默认字幕,支持为'zh-cn','zh-tw','eng'添加默认字幕,未定义或设置为None则不添加
|
||||
DEFAULT_SUB=zh-cn
|
||||
# 数据库连接池的大小,可适当降低如20-50以减少I/O压力
|
||||
@@ -25,7 +15,9 @@ DB_POOL_SIZE=100
|
||||
DB_MAX_OVERFLOW=500
|
||||
# SQLite 的 busy_timeout 参数,可适当增加如180以减少锁定错误
|
||||
DB_TIMEOUT=60
|
||||
# 是否开发调试模式,仅开发人员使用,打开后将停止后台服务
|
||||
DEV=false
|
||||
API_TOKEN='jYImOhUt6p4acOeMpNgDhA'
|
||||
ANIME_GENREIDS='[16]'
|
||||
# 是否启用内存监控,开启后将定期生成内存快照文件
|
||||
MEMORY_ANALYSIS=false
|
||||
# 内存快照间隔(分钟)
|
||||
MEMORY_SNAPSHOT_INTERVAL=5
|
||||
# 保留的内存快照文件数量
|
||||
MEMORY_SNAPSHOT_KEEP_COUNT=30
|
||||
Reference in New Issue
Block a user