From 849fc4dfbba94b6a4c35747cd465fb20137b1667 Mon Sep 17 00:00:00 2001 From: Carsten Hinz <c.hinz@fz-juelich.de> Date: Thu, 13 Jun 2024 14:12:58 +0200 Subject: [PATCH] added waiting time before restarting a request --- toargridding/toar_rest_client.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/toargridding/toar_rest_client.py b/toargridding/toar_rest_client.py index dafb710..65a52fb 100644 --- a/toargridding/toar_rest_client.py +++ b/toargridding/toar_rest_client.py @@ -257,7 +257,8 @@ class Connection: This function catches possible connection issues and continues to """ status_endpoint = self.get_status_endpoint(query_options) - + nRestart=0 + waitRestart = 300 for i, wait_time in enumerate(self.wait_seconds): logger.info(f"try: {i+1}, wait_time: {wait_time}") response = self.wait_and_get(status_endpoint, wait_secs=wait_time) @@ -269,7 +270,8 @@ class Connection: self.printExecption(e, response) #a Status Code 500 seems indicated an aborted request -> restart the request and continue with new status endpoint if e.response.status_code == 500: - logger.warning("Received internal server error. Restarting request.") + logger.warning(f"Received internal server error. Restarting request in {waitRestart}s.") + time.sleep(waitRestart) self.cache.remove(query_options.cache_key) status_endpoint = self.get_status_endpoint(query_options) else: @@ -281,7 +283,7 @@ class Connection: return response else: raise RuntimeError( - f"No data available after {sum(self.wait_seconds) / 60} minutes. retry later." + f"No data available after {sum(self.wait_seconds) / 60 + nRestart*waitRestart / 60} minutes. retry later." ) def get_status_endpoint(self, query_options: QueryOptions) -> str: -- GitLab