Retry on any exception
Also seen these when testing: WSError: User not found MalformedResponseError: Malformed response from Last.fm. Underlying error: mismatched tag: line 6, column 2 NetworkError: NetworkError: [Errno 8] nodename nor servname provided, or not known
This commit is contained in:
parent
f32848160c
commit
9b2ada5dd0
|
@ -2777,27 +2777,17 @@ def _collect_nodes(limit, sender, method_name, cacheable, params=None):
|
|||
while not end_of_pages and (not limit or (limit and len(nodes) < limit)):
|
||||
params["page"] = str(page)
|
||||
|
||||
tries = 0
|
||||
tries = 1
|
||||
while True:
|
||||
tries += 1
|
||||
try:
|
||||
doc = sender._request(method_name, cacheable, params)
|
||||
break # success
|
||||
except MalformedResponseError as e:
|
||||
if tries < 3:
|
||||
time.sleep(1) # wait and try again
|
||||
else:
|
||||
raise e
|
||||
except WSError as e:
|
||||
if tries < 3 and int(e.get_id()) in [
|
||||
# "Please try again" statuses
|
||||
STATUS_OPERATION_FAILED,
|
||||
STATUS_OFFLINE,
|
||||
STATUS_TEMPORARILY_UNAVAILABLE,
|
||||
]:
|
||||
time.sleep(1) # wait and try again
|
||||
else:
|
||||
except Exception as e:
|
||||
if tries >= 3:
|
||||
raise e
|
||||
# Wait and try again
|
||||
time.sleep(1)
|
||||
tries += 1
|
||||
|
||||
doc = cleanup_nodes(doc)
|
||||
|
||||
|
|
Loading…
Reference in a new issue