Files
pretix_cgo/src/pretix/sentry.py
2017-07-17 20:29:56 +02:00

42 lines
911 B
Python

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()