ContextTask   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 6
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
c 1
b 0
f 0
dl 0
loc 6
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A __call__() 0 3 2
1
"""
2
Starting our celery instance
3
"""
4
from __future__ import absolute_import
5
6
import logging
7
import os
8
9
from celery import Celery
10
from flask import current_app
11
from raven import Client
12
from raven.contrib.celery import register_signal, register_logger_signal
13
from raven.handlers.logging import SentryHandler
14
from raven.conf import setup_logging
15
16
from config import Config, config
17
18
celery = Celery(__name__, broker=Config.CELERY_BROKER_URL)
19
20
env = os.environ.get('FLASK_CONFIG', 'default')
21
client = Client(config[env].SENTRY_DSN)
22
handler = SentryHandler(client)
23
setup_logging(handler)
24
register_logger_signal(client, loglevel=logging.INFO)
25
register_signal(client)
26
27
TaskBase = celery.Task
28
29
30
class ContextTask(TaskBase):
31
    abstract = True
32
33
    def __call__(self, *args, **kwargs):
34
        with current_app.app_context():
35
            return TaskBase.__call__(self, *args, **kwargs)
36
37
celery.Task = ContextTask
38