2017-02-27 70 views
1

如何告訴芹菜關於我在Redis上尋找的服務名稱?我試圖使用芹菜4.我傳遞配置的經紀人URL內置哨兵支持,因爲它說,在the documentationsentinel://0.0.0.0:26379通過Sentinel將芹菜連接到Redis

但redis的出現抱怨沒有傳遞一個服務名:

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 

是否可以使用此URL格式傳遞service_name?我曾嘗試

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

我一直沒能找到關於連接的任何文檔的URL,我已經找到redis-sentinel-URL,但我沒有看到它包含在Redis的包,所以我甚至不能確定它是被redis使用。

回答

3

我設法解決這個問題:芹菜需要設置broker_urlbroker_transport_options配置。

1)broker_url採取定點URL的形式: 哨兵://本地主機:26379

2)broker_transport_options是需要你試圖連接到定點服務的名稱的字典。也就是說,如果你想要把工作給一個名爲隊列「木竿」: {「master_name」:「木竿」}

雖然上述錯誤消息是抱怨,你錯了「服務名」過去了,你真正想要的使用密鑰'master_name'傳入。

+0

嗨Desiree,「fiddlesticks」是什麼意思?如果您不知道具體的工作隊列,您可以指定一個默認工作隊列嗎? – platypus

+0

在我的示例中,我的隊列名稱是'fiddlesticks',我不知道如何指定默認作業隊列。 –