我如何告诉芹菜关于我在redis上寻找的服务名称?我正在尝试使用Celery 4中内置的Sentinel支持。我正在传递一个在the documentation中配置的代理URL:sentinel://0.0.0.0:26379
但redis似乎抱怨没有收到service_name:
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是否可以使用此service_name格式传递URL?我试过了
sentinel://0.0.0.0:26379/my_service
sentinel://0.0.0.0:26379/0/my_service我没有找到任何关于连接URL的文档-我找到了redis-sentinel-URL,但我没有看到它包含在redis包中,所以我甚至不确定redis是否正在使用它。
发布于 2017-04-04 08:39:34
我设法解决了这个问题: celery需要同时设置broker_url和broker_transport_options配置。
1) broker_url采用前哨URL的形式:前哨://本地主机:26379
2) broker_transport_options是一个字典,它需要您尝试连接到的前哨服务的名称。例如,如果您想要将作业推送到名为‘fiddlesticks’的队列中:{"master_name":"fiddlesticks"}
尽管上面的错误消息提示您传入了错误的“service_name”,但实际上您希望使用键“master_name”传入。
https://stackoverflow.com/questions/42495725
复制相似问题