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