##// END OF EJS Templates
version bump, small readme update
version bump, small readme update

File last commit:

r497:fb0c3af6 celery
r498:6aa7db1c celery
Show More
__init__.py
66 lines | 1.6 KiB | text/x-python | PythonLexer
Implemented locking for task, to prevent for running the same tasks,...
r497 from pylons_app.lib.pidlock import DaemonLock, LockHeld
starting celery branch
r467 from vcs.utils.lazy import LazyProperty
Implemented locking for task, to prevent for running the same tasks,...
r497 from decorator import decorator
starting celery branch
r467 import logging
Implemented password reset(forms/models/ tasks) and mailing tasks....
r474 import os
import sys
import traceback
Implemented locking for task, to prevent for running the same tasks,...
r497 from hashlib import md5
starting celery branch
r467 log = logging.getLogger(__name__)
class ResultWrapper(object):
def __init__(self, task):
self.task = task
@LazyProperty
def result(self):
return self.task
Some fixes to summary, and total rewrite of summary graphs implemented more interactive graph....
r487 def run_task(task, *args, **kwargs):
starting celery branch
r467 try:
Some fixes to summary, and total rewrite of summary graphs implemented more interactive graph....
r487 t = task.delay(*args, **kwargs)
log.info('running task %s', t.task_id)
starting celery branch
r467 return t
Some fixes to summary, and total rewrite of summary graphs implemented more interactive graph....
r487 except Exception, e:
Implemented locking for task, to prevent for running the same tasks,...
r497 print e
Some fixes to summary, and total rewrite of summary graphs implemented more interactive graph....
r487 if e.errno == 111:
log.debug('Unnable to connect. Sync execution')
else:
log.error(traceback.format_exc())
starting celery branch
r467 #pure sync version
Some fixes to summary, and total rewrite of summary graphs implemented more interactive graph....
r487 return ResultWrapper(task(*args, **kwargs))
Implemented locking for task, to prevent for running the same tasks,...
r497
class LockTask(object):
"""LockTask decorator"""
Some fixes to summary, and total rewrite of summary graphs implemented more interactive graph....
r487
Implemented locking for task, to prevent for running the same tasks,...
r497 def __init__(self, func):
self.func = func
def __call__(self, func):
return decorator(self.__wrapper, func)
def __wrapper(self, func, *fargs, **fkwargs):
params = []
params.extend(fargs)
params.extend(fkwargs.values())
lockkey = 'task_%s' % \
md5(str(self.func) + '-' + '-'.join(map(str, params))).hexdigest()
log.info('running task with lockkey %s', lockkey)
try:
l = DaemonLock(lockkey)
return func(*fargs, **fkwargs)
l.release()
except LockHeld:
log.info('LockHeld')
return 'Task with key %s already running' % lockkey