Refactor event loop handling to use GlobalVar.CURRENT_EVENT_LOOP across multiple modules, improving consistency and maintainability.

This commit is contained in:
jxxghp
2025-11-19 08:42:07 +08:00
parent 6b575f836a
commit b5a6794381
7 changed files with 22 additions and 33 deletions

View File

@@ -1,6 +1,5 @@
"""刮削媒体元数据工具"""
import asyncio
import json
from pathlib import Path
from typing import Optional, Type
@@ -9,6 +8,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.chain.media import MediaChain
from app.core.config import GlobalVar
from app.core.metainfo import MetaInfoPath
from app.log import logger
from app.schemas import FileItem
@@ -83,8 +83,7 @@ class ScrapeMetadataTool(MoviePilotTool):
}, ensure_ascii=False)
# 在线程池中执行同步的刮削操作
loop = asyncio.get_event_loop()
await loop.run_in_executor(
await GlobalVar.CURRENT_EVENT_LOOP.run_in_executor(
None,
lambda: media_chain.scrape_metadata(
fileitem=fileitem,

View File

@@ -1,6 +1,5 @@
"""搜索订阅缺失剧集工具"""
import asyncio
import json
from typing import Optional, Type, List
@@ -8,6 +7,7 @@ from pydantic import BaseModel, Field
from app.agent.tools.base import MoviePilotTool
from app.chain.subscribe import SubscribeChain
from app.core.config import GlobalVar
from app.db.subscribe_oper import SubscribeOper
from app.log import logger
@@ -85,8 +85,7 @@ class SearchSubscribeTool(MoviePilotTool):
# 在线程池中执行同步的搜索操作
# 当 sid 有值时state 参数会被忽略,直接处理该订阅
loop = asyncio.get_event_loop()
await loop.run_in_executor(
await GlobalVar.CURRENT_EVENT_LOOP.run_in_executor(
None,
lambda: subscribe_chain.search(
sid=subscribe_id,