From dbbca024466fb2091040ead1e512318ced3e8d3a Mon Sep 17 00:00:00 2001 From: Bogadisa Date: Wed, 28 Jan 2026 21:35:26 -0330 Subject: [PATCH] #804 Now sleeps for 30 seconds if servers are down (503 response) --- .../data_retrieval/poe_api_handler.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/backend_data_retrieval/data_retrieval_app/external_data_retrieval/data_retrieval/poe_api_handler.py b/src/backend_data_retrieval/data_retrieval_app/external_data_retrieval/data_retrieval/poe_api_handler.py index 02b6ff7f..c272234b 100644 --- a/src/backend_data_retrieval/data_retrieval_app/external_data_retrieval/data_retrieval/poe_api_handler.py +++ b/src/backend_data_retrieval/data_retrieval_app/external_data_retrieval/data_retrieval/poe_api_handler.py @@ -229,6 +229,7 @@ async def _send_n_recursion_requests( self.url, params={"id": self.next_change_id} ) as response: headers = response.headers + response.status = 503 if response.status >= 300: if response.status == 429: self.skip_program_too_slow = False @@ -243,6 +244,16 @@ async def _send_n_recursion_requests( return await self._send_n_recursion_requests( n, session, waiting_for_next_id_lock, mini_batch_size ) + elif response.status == 503: + # Temporarily unavailable = servers are down + logger.info( + "Received a 503 response, meaning servers are down. Sleeping for 30 seconds" + ) + await asyncio.sleep(30) + waiting_for_next_id_lock.release() + return await self._send_n_recursion_requests( + n, session, waiting_for_next_id_lock, mini_batch_size + ) else: waiting_for_next_id_lock.release() logger.exception(