支持补查订单

This commit is contained in:
2026-06-11 13:34:54 +08:00
parent b64d282d85
commit c3fd26149f
8 changed files with 90 additions and 28 deletions
+6 -1
View File
@@ -19,6 +19,7 @@ from src.utils.logger import setup_logger
from src.task_queue.dispatcher import TaskDispatcher
from src.task_queue.delay_zset_listener import RedisZSetDelayListener
from src.task_queue.listener import RedisStreamListener
from src.task_queue.trade_fetch_listener import TradeFetchStreamListener
from src.task_queue.redis_manager import get_redis_manager
async def main() -> None:
@@ -53,6 +54,7 @@ async def main() -> None:
dispatcher = TaskDispatcher()
stream_listener = RedisStreamListener(dispatcher)
delay_listener = RedisZSetDelayListener(dispatcher)
trade_fetch_listener = TradeFetchStreamListener(dispatcher)
# 5. 优雅停机信号处理 (跨平台支持)
loop = asyncio.get_running_loop()
@@ -62,6 +64,7 @@ async def main() -> None:
# 触发监听器停止的协程任务
asyncio.create_task(stream_listener.stop())
asyncio.create_task(delay_listener.stop())
asyncio.create_task(trade_fetch_listener.stop())
# Windows 默认的 Proactor 事件循环不支持 add_signal_handler。
if sys.platform != "win32":
@@ -78,7 +81,8 @@ async def main() -> None:
try:
stream_task = asyncio.create_task(stream_listener.listen())
delay_task = asyncio.create_task(delay_listener.listen())
await asyncio.gather(stream_task, delay_task)
trade_fetch_task = asyncio.create_task(trade_fetch_listener.listen())
await asyncio.gather(stream_task, delay_task, trade_fetch_task)
except asyncio.CancelledError:
logger.warning("监听器轮询执行被事件循环取消。")
except Exception as e:
@@ -88,6 +92,7 @@ async def main() -> None:
await asyncio.gather(
stream_listener.stop(),
delay_listener.stop(),
trade_fetch_listener.stop(),
get_browser_manager().close_all(),
get_redis_manager().close(),
return_exceptions=True,