##// END OF EJS Templates
reverted removed list casting
reverted removed list casting

File last commit:

r1082:c2440bad beta
r1108:899c19b0 beta
Show More
__init__.py
107 lines | 3.0 KiB | text/x-python | PythonLexer
fidex corrent variables passed to dnconfig,...
r783 # -*- coding: utf-8 -*-
"""
code docs, updates
r903 rhodecode.lib.celerylib.__init__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fidex corrent variables passed to dnconfig,...
r783
celery libs for RhodeCode
:created_on: Nov 27, 2010
:author: marcink
fixed copyright year to 2011
r902 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
fidex corrent variables passed to dnconfig,...
r783 :license: GPLv3, see COPYING for more details.
"""
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; version 2
# of the License or (at your opinion) any later version of the license.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
Celery is configured by the .ini files and run from paster now...
r776 import os
import sys
import socket
import traceback
import logging
fidex corrent variables passed to dnconfig,...
r783 from hashlib import md5
from decorator import decorator
fixes for vcs 0.2.0and new slicing methods
r1082 from pylons import config
renamed project to rhodecode
r547 from vcs.utils.lazy import LazyProperty
fidex corrent variables passed to dnconfig,...
r783
Added force https option into config files
r914 from rhodecode.lib import str2bool
fidex corrent variables passed to dnconfig,...
r783 from rhodecode.lib.pidlock import DaemonLock, LockHeld
Another better solution for establishing connection with messaging broker in celery....
r1003 from celery.messaging import establish_connection
fixes for vcs 0.2.0and new slicing methods
r1082
Celery is configured by the .ini files and run from paster now...
r776
renamed project to rhodecode
r547 log = logging.getLogger(__name__)
fidex corrent variables passed to dnconfig,...
r783 try:
CELERY_ON = str2bool(config['app_conf'].get('use_celery'))
except KeyError:
CELERY_ON = False
Celery is configured by the .ini files and run from paster now...
r776
renamed project to rhodecode
r547 class ResultWrapper(object):
def __init__(self, task):
self.task = task
Celery is configured by the .ini files and run from paster now...
r776
renamed project to rhodecode
r547 @LazyProperty
def result(self):
return self.task
def run_task(task, *args, **kwargs):
Celery is configured by the .ini files and run from paster now...
r776 if CELERY_ON:
try:
fixed celery issues, default loader was not set as PylonsLoader
r1004 t = task.apply_async(args=args, kwargs=kwargs)
Celery is configured by the .ini files and run from paster now...
r776 log.info('running task %s:%s', t.task_id, task)
return t
except socket.error, e:
if e.errno == 111:
log.debug('Unable to connect to celeryd. Sync execution')
else:
log.error(traceback.format_exc())
except KeyError, e:
log.debug('Unable to connect to celeryd. Sync execution')
except Exception, e:
log.error(traceback.format_exc())
log.debug('executing task %s in sync mode', task)
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()])
Celery is configured by the .ini files and run from paster now...
r776
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')
Celery is configured by the .ini files and run from paster now...
r776 return 'Task with key %s already running' % lockkey
renamed project to rhodecode
r547
Celery is configured by the .ini files and run from paster now...
r776 return decorator(__wrapper, func)
renamed project to rhodecode
r547
Celery is configured by the .ini files and run from paster now...
r776