From c2e15d4ee27088aaba0df960d74e6a3fba1e395e Mon Sep 17 00:00:00 2001 From: Alexey Bezhan Date: Mon, 25 Feb 2019 13:25:50 +0000 Subject: [PATCH] Allow retry exception to propagate from ses callback task Celery `self.retry` raises an exception to communicate that the task needs to be retried. Since our ses task is wrapped in a catch-all except block it logs that exception as an error before retrying. Handling Retry class separately allows us to raise it without logging the traceback. --- app/celery/process_ses_receipts_tasks.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/celery/process_ses_receipts_tasks.py b/app/celery/process_ses_receipts_tasks.py index ebc04ba92..ebe0cfaf9 100644 --- a/app/celery/process_ses_receipts_tasks.py +++ b/app/celery/process_ses_receipts_tasks.py @@ -1,6 +1,7 @@ from datetime import datetime, timedelta import iso8601 +from celery.exceptions import Retry from flask import current_app, json from notifications_utils.statsd_decorators import statsd from sqlalchemy.orm.exc import NoResultFound @@ -75,6 +76,9 @@ def process_ses_results(self, response): return True + except Retry: + raise + except Exception as e: current_app.logger.exception('Error processing SES results: {}'.format(type(e))) self.retry(queue=QueueNames.RETRY)