From c83ca1fc0775a0d537ba468d51a9517918dd4ea0 Mon Sep 17 00:00:00 2001 From: QingQiz Date: Tue, 21 Jul 2020 20:10:38 +0800 Subject: [PATCH] catch errors in multiple threads and retry --- src/you_get/common.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/you_get/common.py b/src/you_get/common.py index ecb70baf..f323828e 100755 --- a/src/you_get/common.py +++ b/src/you_get/common.py @@ -530,12 +530,20 @@ def parallel_in_thread(target, params_list, sort, **kwargs): def action_sort(): while not tasks.empty(): idx, params = tasks.get(block=False) - result.put((idx, target(*params))) + try: + result.put((idx, target(*params))) + except Exception as e: + logging.warn(str(e)) + tasks.put((idx, params)) def action_not_sort(): while not tasks.empty(): - params = tasks.get(block=False) - result.put(target(*params)) + try: + params = tasks.get(block=False) + result.put(target(*params)) + except Exception as e: + logging.warn(str(e)) + tasks.put(params) def f(): try: