##// END OF EJS Templates
Added tag v1.0.2 for changeset d85b0948e539
Added tag v1.0.2 for changeset d85b0948e539

File last commit:

r679:d85b0948 rhodecode-0.0.1.0.2 default
r680:7358dfd7 default
Show More
__init__.py
71 lines | 1.7 KiB | text/x-python | PythonLexer
renamed project to rhodecode
r547 from rhodecode.lib.pidlock import DaemonLock, LockHeld
from vcs.utils.lazy import LazyProperty
from decorator import decorator
import logging
import os
import sys
import traceback
from hashlib import md5
more error catching on celery run_task
r558 import socket
renamed project to rhodecode
r547 log = logging.getLogger(__name__)
class ResultWrapper(object):
def __init__(self, task):
self.task = task
fixed hooks broken symlink issue...
r679
renamed project to rhodecode
r547 @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
more error catching on celery run_task
r558 except socket.error, e:
fixed hooks broken symlink issue...
r679
try:
conn_failed = e.errno == 111
except AttributeError:
conn_failed = False
if conn_failed:
more error catching on celery run_task
r558 log.debug('Unable to connect to celeryd. Sync execution')
else:
fixed hooks broken symlink issue...
r679 log.debug('Unable to connect to celeryd. Sync execution')
more error catching on celery run_task
r558 except KeyError, e:
log.debug('Unable to connect to celeryd. Sync execution')
renamed project to rhodecode
r547 except Exception, e:
more error catching on celery run_task
r558 log.error(traceback.format_exc())
fixed hooks broken symlink issue...
r679
more error catching on celery run_task
r558 return ResultWrapper(task(*args, **kwargs))
renamed project to rhodecode
r547
def locked_task(func):
def __wrapper(func, *fargs, **fkwargs):
params = list(fargs)
params.extend(['%s-%s' % ar for ar in fkwargs.items()])
fixed hooks broken symlink issue...
r679
renamed project to rhodecode
r547 lockkey = 'task_%s' % \
md5(str(func.__name__) + '-' + \
'-'.join(map(str, params))).hexdigest()
log.info('running task with lockkey %s', lockkey)
try:
l = DaemonLock(lockkey)
ret = func(*fargs, **fkwargs)
l.release()
return ret
except LockHeld:
log.info('LockHeld')
fixed hooks broken symlink issue...
r679 return 'Task with key %s already running' % lockkey
renamed project to rhodecode
r547
fixed hooks broken symlink issue...
r679 return decorator(__wrapper, func)
renamed project to rhodecode
r547
fixed hooks broken symlink issue...
r679