This commit is contained in:
aaron 2026-02-20 22:06:48 +08:00
parent 2eae5cdc5e
commit 881f75590c

View File

@ -15,8 +15,22 @@ class PriceMonitorService:
# Binance API
BASE_URL = "https://api.binance.com"
_instance = None
_initialized = False
def __new__(cls):
"""单例模式 - 确保只有一个实例"""
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance
def __init__(self):
"""初始化价格监控服务"""
# 防止重复初始化
if PriceMonitorService._initialized:
return
PriceMonitorService._initialized = True
self.settings = get_settings()
self.running = False
self.subscribed_symbols: Set[str] = set()
@ -32,7 +46,7 @@ class PriceMonitorService:
def start(self):
"""启动价格轮询"""
if self.running:
logger.warning("价格监控服务已在运行")
logger.debug("价格监控服务已在运行")
return
self.running = True
@ -51,6 +65,8 @@ class PriceMonitorService:
break
time.sleep(0.1)
# 防止重复创建线程
if self._poll_thread is None or not self._poll_thread.is_alive():
self._poll_thread = threading.Thread(target=_poll_loop, daemon=True)
self._poll_thread.start()