2017-02-27 6 views
1

Comment dire à céleri le nom de service que je recherche sur redis? Je suis en train d'utiliser le support Sentinel intégré dans Céleri 4. Je passe une URL de courtier configuré comme il est dit dans the documentation: sentinel://0.0.0.0:26379Relier Celery à Redis via Sentinel

Mais Redis semble se plaindre de ne pas être passé un nom_service:

File "/usr/local/lib/python2.7/dist-packages/redis/sentinel.py", line 222, in discover_master 
    raise MasterNotFoundError("No master found for %r" % (service_name,)) 
OperationalError: No master found for None 

Est-il possible de transmettre un service_name en utilisant ce format d'URL? J'ai essayé

sentinel://0.0.0.0:26379/my_service 
sentinel://0.0.0.0:26379/0/my_service 

Je n'ai pas pu trouver aucune documentation sur la connexion des URL, j'ai trouvé redis-sentinel-URL mais je ne vois pas inclus dans le package Redis, donc je ne suis même pas sûr qu'il est étant utilisé par redis.

Répondre

3

J'ai réussi à résoudre ce problème: le céleri a besoin de configurer la configuration broker_url et broker_transport_options.

1) broker_url prend la forme d'une URL sentinelle: sentinelle: // localhost: 26379

2) broker_transport_options est un dictionnaire qui a besoin du nom du service sentinelle que vous essayez de vous connecter. à-dire, si vous voulez pousser des emplois à une file d'attente appelée « balivernes »: { « master_name »: « Fiddlesticks »}

Bien que le message d'erreur ci-dessus est plaignez que vous avez passé dans le mauvais « nom_du_service », vous voulez réellement passer en utilisant la clé 'master_name'.

+0

Bonjour Desiree, que veut dire "fiddlesticks" ici? Pouvez-vous spécifier une file d'attente par défaut si vous n'en connaissez pas une spécifique? – platypus

+0

Dans mon exemple, le nom de ma file d'attente est "fiddlesticks", je ne sais pas comment spécifier une file d'attente de travail par défaut. –