From aefa92d986fd36d866da76c75e20db4b607cb199 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Sat, 24 Sep 2016 13:28:01 +0200 Subject: [PATCH] Fix #249 -- Blacklist some exceptions for celeries error reporting --- src/pretix/celery.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/pretix/celery.py b/src/pretix/celery.py index 58b28df29..2f4990f21 100644 --- a/src/pretix/celery.py +++ b/src/pretix/celery.py @@ -1,6 +1,7 @@ import os from celery import Celery +from celery.utils.mail import ErrorMail os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pretix.settings") @@ -8,5 +9,21 @@ from django.conf import settings app = Celery('pretix') + +class MyErrorMail(ErrorMail): + + def should_send(self, context, exc): + from pretix.base.services.orders import OrderError + from pretix.base.services.cart import CartError + + blacklist = (OrderError, CartError) + return not isinstance(exc, blacklist) + + app.config_from_object('django.conf:settings') +app.conf.CELERY_ANNOTATIONS = { + '*': { + 'ErrorMail': MyErrorMail, + } +} app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)