Fix raven integration

This commit is contained in:
Raphael Michel
2017-07-17 20:29:56 +02:00
parent f900c842cb
commit 130f619b05
8 changed files with 83 additions and 20 deletions

41
src/pretix/sentry.py Normal file
View File

@@ -0,0 +1,41 @@
from threading import Lock
from raven.contrib.celery import SentryCeleryHandler
from raven.contrib.django.apps import RavenConfig
from raven.contrib.django.models import (
SentryDjangoHandler, client, get_client, install_middleware,
register_serializers,
)
_setup_lock = Lock()
_initialized = False
class CustomSentryDjangoHandler(SentryDjangoHandler):
def install_celery(self):
self.celery_handler = SentryCeleryHandler(client, ignore_expected=True).install()
def initialize():
global _initialized
with _setup_lock:
if _initialized:
return
register_serializers()
install_middleware()
handler = CustomSentryDjangoHandler()
handler.install()
# instantiate client so hooks get registered
get_client() # NOQA
_initialized = True
class App(RavenConfig):
def ready(self):
initialize()