define celery routing

This commit is contained in:
Jan Dittberner 2014-12-26 13:14:09 +01:00
parent 7a47cc9a17
commit e04d9f586b
2 changed files with 24 additions and 0 deletions

View file

@ -282,6 +282,10 @@ BROKER_URL = get_env_setting('GVAFILE_BROKER_URL')
CELERY_RESULT_BACKEND = 'amqp'
CELERY_RESULT_PERSISTENT = True
CELERY_TASK_RESULT_EXPIRES = None
CELERY_ROUTES = (
'osusers.tasks.LdapRouter',
'osusers.tasks.FileRouter',
)
CELERY_ACCEPT_CONTENT = ['yaml', 'json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'

View file

@ -25,6 +25,26 @@ SETFACL_CMD = '/usr/bin/setfacl'
RM_CMD = '/bin/rm'
class LdapRouter(object):
def route_for_task(self, task, args=None, kwargs=None):
if 'ldap' in task:
return {'exchange': 'ldap',
'exchange_type': 'direct',
'queue': 'ldap'}
return None
class FileRouter(object):
def route_for_task(self, task, args=None, kwargs=None):
if 'file' in task:
return {'exchange': 'file',
'exchange_type': 'direct',
'queue': 'file'}
return None
def _build_sftp_directory_name(username):
"""
Constructs the SFTP directory name for a given username.