示例#1
0
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)
示例#3
0
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()
示例#4
0
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()
示例#5
0
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()
示例#6
0
# 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)
示例#7
0
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)