Handle all exceptions
If we get back an error that wasn't an APIError, it was causing the thread to hang. This catch all, while I appreciate feels risky to have a catch all, is better than not catching and silently failing, with a never ending thread. If something worse than an APIError has gone wrong, we want to stop the incredible journey of what we're doing. Signed-off-by: Mazz Mosley <mazz@houseofmnowster.com>
This commit is contained in:
parent
b87c09b9fc
commit
f4a8fda283
2 changed files with 26 additions and 0 deletions
|
|
@ -32,6 +32,10 @@ def parallel_execute(objects, obj_callable, msg_index, msg):
|
|||
except APIError as e:
|
||||
errors[msg_index] = e.explanation
|
||||
result = "error"
|
||||
except Exception as e:
|
||||
errors[msg_index] = e
|
||||
result = 'unexpected_exception'
|
||||
|
||||
q.put((msg_index, result))
|
||||
|
||||
for an_object in objects:
|
||||
|
|
@ -48,6 +52,9 @@ def parallel_execute(objects, obj_callable, msg_index, msg):
|
|||
while done < total_to_execute:
|
||||
try:
|
||||
msg_index, result = q.get(timeout=1)
|
||||
|
||||
if result == 'unexpected_exception':
|
||||
raise errors[msg_index]
|
||||
if result == 'error':
|
||||
write_out_msg(stream, lines, msg_index, msg, status='error')
|
||||
else:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue