@@ -94,7 +94,9 @@ def _blocking_request(self, method, url, parameters={}) -> Optional["Response"]:
94
94
logger .debug ("[{}] Request complete" .format (datetime .timestamp ()))
95
95
return self .async_response
96
96
97
- def _user_friendly_blocking_request (self , method , url , parameters = {}, request_timeout = 0 ) -> Optional ["Response" ]:
97
+ def send_request_while_show_progress_threaded (
98
+ self , method , url , parameters = {}, request_timeout = 0
99
+ ) -> Optional ["Response" ]:
98
100
try :
99
101
request_thread = Thread (target = self ._blocking_request , args = (method , url , parameters ))
100
102
request_thread .async_response = - 1 # type:ignore # this is an invented attribute for thread comms
@@ -109,19 +111,22 @@ def _user_friendly_blocking_request(self, method, url, parameters={}, request_ti
109
111
# a quick return for any immediate responses
110
112
return self .async_response
111
113
while self .async_response == - 1 and (request_timeout == 0 or seconds < request_timeout ):
112
- self .wait_for_response (minutes , seconds , url )
114
+ self .log_wait_time_then_sleep (minutes , seconds , url )
113
115
seconds = seconds + DELAY_SLEEP_SECONDS
114
116
if seconds >= 60 :
115
117
seconds = 0
116
118
minutes = minutes + 1
117
119
return self .async_response
118
120
119
- def wait_for_response (self , minutes , seconds , url ):
121
+ def log_wait_time_then_sleep (self , minutes , seconds , url ):
120
122
logger .debug ("{} Waiting...." .format (datetime .timestamp ()))
121
- if minutes % 5 == 0 and seconds >= 60 :
122
- logger .info ("[{}] Waiting ({} minutes so far) for request to {}" .format (datetime .timestamp (), minutes , url ))
123
- elif minutes % 1 == 0 and seconds >= 60 :
124
- logger .debug ("[{}] Waiting for request to {}" .format (datetime .timestamp (), url ))
123
+ if seconds >= 60 : # detailed log message ~every minute
124
+ if minutes % 5 == 0 :
125
+ logger .info (
126
+ "[{}] Waiting ({} minutes so far) for request to {}" .format (datetime .timestamp (), minutes , url )
127
+ )
128
+ else :
129
+ logger .debug ("[{}] Waiting for request to {}" .format (datetime .timestamp (), url ))
125
130
sleep (DELAY_SLEEP_SECONDS )
126
131
127
132
def _make_request (
@@ -146,7 +151,7 @@ def _make_request(
146
151
# a request can, for stuff like publishing, spin for ages waiting for a response.
147
152
# we need some user-facing activity so they know it's not dead.
148
153
request_timeout = self .parent_srv .http_options .get ("timeout" ) or 0
149
- server_response : Optional ["Response" ] = self ._user_friendly_blocking_request (
154
+ server_response : Optional ["Response" ] = self .send_request_while_show_progress_threaded (
150
155
method , url , parameters , request_timeout
151
156
)
152
157
logger .debug ("[{}] Async request returned: received {}" .format (datetime .timestamp (), server_response ))
0 commit comments