def register_handlers(): from django.core.signals import got_request_exception # Connect to Django's internal signal handler got_request_exception.connect(opbeat_exception_handler) # If Celery is installed, register a signal handler if 'djcelery' in django_settings.INSTALLED_APPS: from opbeat.contrib.celery import register_signal try: register_signal(client) except Exception as e: logger.exception('Failed installing django-celery hook: %s' % e)
def register_handlers(): from django.core.signals import got_request_exception # Connect to Django's internal signal handler got_request_exception.connect(opbeat_exception_handler) # If Celery is installed, register a signal handler if 'djcelery' in django_settings.INSTALLED_APPS: from opbeat.contrib.celery import register_signal try: register_signal(client) except Exception, e: logger.exception('Failed installing django-celery hook: %s' % e)
def register_handlers(): from django.core.signals import got_request_exception # Connect to Django's internal signal handler got_request_exception.connect(opbeat_exception_handler) # If Celery is installed, register a signal handler if 'djcelery' in django_settings.INSTALLED_APPS: from opbeat.contrib.celery import register_signal try: register_signal(client) except Exception as e: logger.exception('Failed installing django-celery hook: %s' % e) # Instrument to get traces skip_env_var = 'SKIP_INSTRUMENT' if skip_env_var in os.environ: logger.debug("Skipping instrumentation. %s is set.", skip_env_var) else: opbeat.instrumentation.control.instrument()
import os from celery import Celery os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'stackdio.server.settings.production') # pylint: disable=wrong-import-position from django.conf import settings # nopep8 app = Celery('stackdio') # 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) # Add opbeat for celery if it's enabled if settings.OPBEAT_ENABLED: from opbeat.contrib.django.models import client, logger, register_handlers from opbeat.contrib.celery import register_signal try: register_signal(client) except Exception as e: logger.exception('Failed installing celery hook: %s', e) if 'opbeat.contrib.django' in settings.INSTALLED_APPS: register_handlers()
# set the default Django settings module for the 'celery' program. os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'perma.settings') app = Celery('perma') # 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) # configure opbeat # Imports have to come after DJANGO_SETTINGS_MODULE if settings.USE_OPBEAT: from celery.signals import task_prerun, task_postrun from opbeat.contrib.django.models import client, logger, register_handlers from opbeat.contrib.celery import register_signal try: register_signal(client) except Exception as e: logger.exception('Failed installing celery hook: %s' % e) register_handlers() @task_prerun.connect def task_prerun_handler(task_id, task, *args, **kwargs): client.begin_transaction("task.celery") @task_postrun.connect def task_postrun_handler(task_id, task, *args, **kwargs): client.end_transaction('celery:'+task.__name__, 200 if kwargs.get('state') == 'SUCCESS' else 500)
from celery import Celery from nlweb.app import create_app, load_celery_config from nlweb.extensions import opbeat from opbeat.contrib.celery import register_signal def make_celery(app): celery_obj = Celery(app.import_name) load_celery_config(celery_obj) TaskBase = celery_obj.Task class ContextTask(TaskBase): abstract = True def __call__(self, *args, **kwargs): with app.app_context(): return TaskBase.__call__(self, *args, **kwargs) celery_obj.Task = ContextTask return celery_obj flask_app = create_app() celery = make_celery(flask_app) if not flask_app.debug: register_signal(opbeat.client)