切换虎牙宝典开通任务到WSS会话

This commit is contained in:
yml2213
2026-09-01 12:20:58 +08:00
parent c195430845
commit aab84e0fb5
5 changed files with 175 additions and 4 deletions
+23
View File
@@ -7,6 +7,7 @@ import copy
import threading
import time
from datetime import UTC, datetime
from typing import Any
from loguru import logger
from sqlalchemy.orm import Session
@@ -45,10 +46,32 @@ class HuyaBatchRunnerCore:
self._stop = threading.Event()
self._counter_lock = threading.Lock()
self._started = 0
self._wss_sessions: list[Any] = []
def stop(self):
self._stop.set()
def _open_wss_session(self, uid: int, cookie: str, kind: str):
"""在当前任务线程创建并登记 WSS 会话,统一由 finally 回收。"""
from core.huya.elite_session import HuyaEliteWssSession
session = HuyaEliteWssSession(
uid=uid,
cookie=cookie,
kind=kind,
logger=lambda message: self._push_log("info", f"[{uid}] {message}"),
)
self._wss_sessions.append(session)
return session
def _close_wss_sessions(self):
for session in reversed(self._wss_sessions):
try:
session.close()
except Exception: # noqa: BLE001 - cleanup must not mask task status
logger.debug("[huya] WSS 会话清理异常")
self._wss_sessions.clear()
def _push_log(self, level: str, message: str):
if level == "result":
try: