@@ -76,7 +76,7 @@ def set_user_agent(parameters):
7676 # return explicitly for testing only
7777 return parameters
7878
79- def _blocking_request (self , method , url , parameters = {}) -> Optional ["Response" ]:
79+ def _blocking_request (self , method , url , parameters = {}) -> Optional [Union [ "Response" , Exception ] ]:
8080 self .async_response = None
8181 response = None
8282 logger .debug ("[{}] Begin blocking request to {}" .format (datetime .timestamp (), url ))
@@ -96,32 +96,31 @@ def _blocking_request(self, method, url, parameters={}) -> Optional["Response"]:
9696
9797 def send_request_while_show_progress_threaded (
9898 self , method , url , parameters = {}, request_timeout = 0
99- ) -> Optional ["Response" ]:
99+ ) -> Optional [Union [ "Response" , Exception ] ]:
100100 try :
101101 request_thread = Thread (target = self ._blocking_request , args = (method , url , parameters ))
102- request_thread .async_response = - 1 # type:ignore # this is an invented attribute for thread comms
103102 request_thread .start ()
104103 except Exception as e :
105104 logger .debug ("Error starting server request on separate thread: {}" .format (e ))
106105 return None
107- seconds = 0
106+ seconds = 0.05
108107 minutes = 0
109- sleep (1 )
110- if self .async_response != - 1 :
108+ sleep (seconds )
109+ if self .async_response is not None :
111110 # a quick return for any immediate responses
112111 return self .async_response
113- while self .async_response == - 1 and (request_timeout == 0 or seconds < request_timeout ):
112+ while ( self .async_response is None ) and (request_timeout == 0 or seconds < request_timeout ):
114113 self .log_wait_time_then_sleep (minutes , seconds , url )
115114 seconds = seconds + DELAY_SLEEP_SECONDS
116115 if seconds >= 60 :
117- seconds = 0
118- minutes = minutes + 1
116+ seconds -= 60
117+ minutes += 1
119118 return self .async_response
120119
121120 def log_wait_time_then_sleep (self , minutes , seconds , url ):
122121 logger .debug ("{} Waiting...." .format (datetime .timestamp ()))
123122 if seconds >= 60 : # detailed log message ~every minute
124- if minutes % 5 == 0 :
123+ if minutes % 1 == 0 :
125124 logger .info (
126125 "[{}] Waiting ({} minutes so far) for request to {}" .format (datetime .timestamp (), minutes , url )
127126 )
0 commit comments