ContextTask.__call__()   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 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