view pylons_app/lib/celerylib/__init__.py @ 487:b12ea84fb906 celery

Some fixes to summary, and total rewrite of summary graphs implemented more interactive graph. Some small fixes for tasks (sorting,limit)
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 19 Sep 2010 03:29:49 +0200
parents a3d9d24acbec
children fb0c3af6031b
line wrap: on
line source

from vcs.utils.lazy import LazyProperty
import logging
import os
import sys
import traceback

log = logging.getLogger(__name__)

class ResultWrapper(object):
    def __init__(self, task):
        self.task = task
        
    @LazyProperty
    def result(self):
        return self.task

def run_task(task, *args, **kwargs):
    try:
        t = task.delay(*args, **kwargs)
        log.info('running task %s', t.task_id)
        return t
    except Exception, e:
        if e.errno == 111:
            log.debug('Unnable to connect. Sync execution')
        else:
            log.error(traceback.format_exc())
        #pure sync version
        return ResultWrapper(task(*args, **kwargs))