diff --git a/rhodecode/lib/celerylib/__init__.py b/rhodecode/lib/celerylib/__init__.py --- a/rhodecode/lib/celerylib/__init__.py +++ b/rhodecode/lib/celerylib/__init__.py @@ -12,7 +12,7 @@ log = logging.getLogger(__name__) class ResultWrapper(object): def __init__(self, task): self.task = task - + @LazyProperty def result(self): return self.task @@ -23,15 +23,22 @@ def run_task(task, *args, **kwargs): log.info('running task %s', t.task_id) return t except socket.error, e: - if e.errno == 111: + + try: + conn_failed = e.errno == 111 + except AttributeError: + conn_failed = False + + if conn_failed: log.debug('Unable to connect to celeryd. Sync execution') else: - log.error(traceback.format_exc()) + log.debug('Unable to connect to celeryd. Sync execution') + except KeyError, e: log.debug('Unable to connect to celeryd. Sync execution') except Exception, e: log.error(traceback.format_exc()) - + return ResultWrapper(task(*args, **kwargs)) @@ -39,7 +46,7 @@ def locked_task(func): def __wrapper(func, *fargs, **fkwargs): params = list(fargs) params.extend(['%s-%s' % ar for ar in fkwargs.items()]) - + lockkey = 'task_%s' % \ md5(str(func.__name__) + '-' + \ '-'.join(map(str, params))).hexdigest() @@ -51,14 +58,14 @@ def locked_task(func): return ret except LockHeld: log.info('LockHeld') - return 'Task with key %s already running' % lockkey + return 'Task with key %s already running' % lockkey - return decorator(__wrapper, func) - + return decorator(__wrapper, func) + + - - - - - - + + + + +