Changeset - 9037456bb17f
[Not reviewed]
beta
1 1 0
Marcin Kuzminski - 15 years ago 2011-02-08 03:45:22
marcin@python-works.com
Another better solution for establishing connection with messaging broker in celery.
This one doesn't require celeryconfig.py
2 files changed with 12 insertions and 5 deletions:
0 comments (0 inline, 0 general)
celeryconfig.py
Show inline comments
 
deleted file
rhodecode/lib/celerylib/__init__.py
Show inline comments
 
@@ -38,6 +38,7 @@ from vcs.utils.lazy import LazyProperty
 
from rhodecode.lib import str2bool
 
from rhodecode.lib.pidlock import DaemonLock, LockHeld
 

	
 
from celery.messaging import establish_connection
 
from pylons import  config
 

	
 
log = logging.getLogger(__name__)
 
@@ -58,7 +59,17 @@ class ResultWrapper(object):
 
def run_task(task, *args, **kwargs):
 
    if CELERY_ON:
 
        try:
 
            t = task.delay(*args, **kwargs)
 
            kw = {
 
                'hostname':config['app_conf'].get('broker.host'),
 
                'userid':config['app_conf'].get('broker.user'),
 
                'password':config['app_conf'].get('broker.password'),
 
                'virtual_host':config['app_conf'].get('broker.vhost'),
 
                'port':config['app_conf'].get('broker.port'),
 
            }
 
            conn = establish_connection(**kw)
 
            publisher = task.get_publisher(connection=conn)
 
            t = task.apply_async(args=args, kwargs=kwargs, publisher=publisher)
 

	
 
            log.info('running task %s:%s', t.task_id, task)
 
            return t
 
        except socket.error, e:
0 comments (0 inline, 0 general)