From ca2af1582f8d8f0b770afe392ada94991319d2f9 Mon Sep 17 00:00:00 2001 From: Wolfgang Pichler Date: Thu, 19 Nov 2020 08:16:47 +0100 Subject: [PATCH] [FIX] Fixed #261. Retryable Job Exception must also throw the exception up to the core, so that the rollback can happen. --- queue_job/controllers/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/queue_job/controllers/main.py b/queue_job/controllers/main.py index f9f2206b2b..de388f51da 100644 --- a/queue_job/controllers/main.py +++ b/queue_job/controllers/main.py @@ -89,9 +89,8 @@ def retry_postpone(job, message, seconds=None): if err.pgcode not in PG_CONCURRENCY_ERRORS_TO_RETRY: raise - retry_postpone(job, tools.ustr(err.pgerror, errors='replace'), - seconds=PG_RETRY) _logger.debug('%s OperationalError, postponed', job) + raise RetryableJobError(tools.ustr(err.pgerror, errors='replace'), seconds=PG_RETRY) except NothingToDoJob as err: if str(err): @@ -106,6 +105,7 @@ def retry_postpone(job, message, seconds=None): # delay the job later, requeue retry_postpone(job, str(err), seconds=err.seconds) _logger.debug('%s postponed', job) + raise except (FailedJobError, Exception): buff = StringIO()