From b8d5952b83e7601c5df646efd976879f0dbd30c2 Mon Sep 17 00:00:00 2001 From: Tom van der Lee Date: Tue, 28 Apr 2026 10:45:41 +0200 Subject: Fixed issue with the redis proxy queue not working due to enqueing on the wrong queue --- ttun_server/proxy_queue.py | 2 +- ttun_server/redis.py | 14 ++++---------- ttun_server/websockets.py | 6 ++---- 3 files changed, 7 insertions(+), 15 deletions(-) (limited to 'ttun_server') diff --git a/ttun_server/proxy_queue.py b/ttun_server/proxy_queue.py index c6c8067..cfa0f3c 100644 --- a/ttun_server/proxy_queue.py +++ b/ttun_server/proxy_queue.py @@ -109,7 +109,7 @@ class RedisProxyQueue(BaseProxyQueue): async def enqueue(self, message: Message): await RedisConnectionPool \ .get_connection() \ - .publish(self.identifier, json.dumps(message)) + .publish(f'request_{self.identifier}', json.dumps(message)) async def dequeue(self) -> Message: message = await self.wait_for_message() diff --git a/ttun_server/redis.py b/ttun_server/redis.py index 18fbca2..fb9ff81 100644 --- a/ttun_server/redis.py +++ b/ttun_server/redis.py @@ -1,19 +1,13 @@ -import asyncio import os -from asyncio import get_running_loop from redis.asyncio import ConnectionPool, Redis class RedisConnectionPool: - instance: 'RedisConnectionPool' = None - - def __init__(self): - self.pool = ConnectionPool.from_url(os.environ.get('REDIS_URL')) + _pool: ConnectionPool | None = None @classmethod def get_connection(cls) -> Redis: - if cls.instance is None: - cls.instance = RedisConnectionPool() - - return Redis(connection_pool=cls.instance.pool) + if cls._pool is None: + cls._pool = ConnectionPool.from_url(os.environ.get('REDIS_URL')) + return Redis(connection_pool=cls._pool) \ No newline at end of file diff --git a/ttun_server/websockets.py b/ttun_server/websockets.py index 0800cbc..f80359f 100644 --- a/ttun_server/websockets.py +++ b/ttun_server/websockets.py @@ -46,7 +46,7 @@ class WebsocketProxy(WebSocketEndpoint): else: yield except AssertionError: - pass + yield None async def listen_for_messages(self, websocket: WebSocket): [subdomain, *_] = websocket.url.hostname.split('.') @@ -74,9 +74,7 @@ class WebsocketProxy(WebSocketEndpoint): ) async with self.proxy(websocket, message) as m: - type = WebsocketMessageType(m['type']) - - if type == WebsocketMessageType.ack: + if m is not None and WebsocketMessageType(m['type']) == WebsocketMessageType.ack: await super().on_connect(websocket) self.websocket_listen_task = asyncio.create_task(self.listen_for_messages(websocket)) -- cgit v1.2.3