From 6df1960f7921d1dc550942c8a3e99e3542044c6a Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Thu, 25 Jul 2019 09:20:34 +0200 Subject: [PATCH] Use robust plugin calling in runperiodic --- src/pretix/base/management/commands/runperiodic.py | 10 +++++++++- src/pretix/settings.py | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/management/commands/runperiodic.py b/src/pretix/base/management/commands/runperiodic.py index 9da53f359b..037b4e6f86 100644 --- a/src/pretix/base/management/commands/runperiodic.py +++ b/src/pretix/base/management/commands/runperiodic.py @@ -1,3 +1,4 @@ +from django.conf import settings from django.core.management import call_command from django.core.management.base import BaseCommand @@ -8,5 +9,12 @@ class Command(BaseCommand): help = "Run periodic tasks" def handle(self, *args, **options): - periodic_task.send(self) + for recv, resp in periodic_task.send_robust(self): + if isinstance(resp, Exception): + if settings.SENTRY_ENABLED: + from sentry_sdk import capture_exception + capture_exception(resp) + else: + raise resp + call_command('clearsessions') diff --git a/src/pretix/settings.py b/src/pretix/settings.py index 930d84bdae..766a953aeb 100644 --- a/src/pretix/settings.py +++ b/src/pretix/settings.py @@ -601,12 +601,14 @@ LOGGING = { }, } +SENTRY_ENABLED = False if config.has_option('sentry', 'dsn'): import sentry_sdk from sentry_sdk.integrations.celery import CeleryIntegration from sentry_sdk.integrations.logging import LoggingIntegration, ignore_logger from .sentry import PretixSentryIntegration, setup_custom_filters + SENTRY_ENABLED = True sentry_sdk.init( dsn=config.get('sentry', 'dsn'), integrations=[