diff --git a/chia/server/ws_connection.py b/chia/server/ws_connection.py index d408a593c072..b3975be91cb5 100644 --- a/chia/server/ws_connection.py +++ b/chia/server/ws_connection.py @@ -238,7 +238,7 @@ class WSChiaConnection: self.log.error(f"Exception Stack: {error_stack}") async def send_message(self, message: Message): - """ Send message sends a message with no tracking / callback. """ + """Send message sends a message with no tracking / callback.""" if self.closed: return await self.outgoing_queue.put(message) @@ -346,13 +346,16 @@ class WSChiaConnection: f"peer: {self.peer_host}" ) - async def wait_and_retry(msg: Message, queue: asyncio.Queue): - try: - await asyncio.sleep(1) - await queue.put(msg) - except Exception as e: - self.log.debug(f"Exception {e} while waiting to retry sending rate limited message") - return + # TODO: fix this special case. This function has rate limits which are too low. + if ProtocolMessageTypes(message.type) != ProtocolMessageTypes.respond_peers: + + async def wait_and_retry(msg: Message, queue: asyncio.Queue): + try: + await asyncio.sleep(1) + await queue.put(msg) + except Exception as e: + self.log.debug(f"Exception {e} while waiting to retry sending rate limited message") + return asyncio.create_task(wait_and_retry(message, self.outgoing_queue)) return