view pylons_app/lib/celerylib/__init__.py @ 492:a5a17000e45b celery

timeproxy logging memory leak fix.
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 21 Sep 2010 15:36:46 +0200
parents b12ea84fb906
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))