import os import raven from celery import Celery from django.conf import settings from raven.contrib.celery import register_signal, register_logger_signal # set the default Django settings module for the 'celery' program. # os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings') os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings.settings') class _Celery(Celery): """wrap for celery.Celery.""" def on_configure(self): # check if sentry settings provided if not settings.SENTRY_CELERY_ENDPOINT: return client = raven.Client(settings.SENTRY_CELERY_ENDPOINT) # register a custom filter to filter out duplicate logs register_logger_signal(client) # hook into the Celery error handler register_signal(client) app = _Celery('saturn_tasks') # Using a string here means the worker will not have to # pickle the object when using Windows. app.config_from_object('django.conf:settings') app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)