2017-02-27 7 views
1

レディスで探しているサービス名についてセロリにどのように伝えることができますか? sentinel://0.0.0.0:26379Sentinel経由でセリスとレディスを接続する

しかし、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 
私は私はそれが言うよう the documentationで構成されたブローカーのURLを渡していセロリ4に内蔵されたセンチネルサポートを使用しようとしています

このURL形式を使用してservice_nameを渡すことはできますか?私は、接続URL-Iはredis-sentinel-URLを発見したが、私はそれがRedisのパッケージに含まれて表示されていないので、私はそれであってもわからない上の任意のドキュメントを見つけることができていない

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

を試してみましたレディスによって使用されています。

答えて

3

これを整理することができました。セロリーでは、broker_urlbroker_transport_optionsの両方の設定を設定する必要があります。

1)broker_urlはセンチネルURLの形式をとります。 センチネルは:// localhostを:26379

2)broker_transport_optionsが接続しようとしているセンチネルサービスの名前を必要とする辞書です。つまり、ジョブを 'fiddlesticks'というキューにプッシュしたい場合は、 {"master_name": "fiddlesticks"}

上記のエラーメッセージは間違った 'service_name'を渡したと言っていますが、実際にはキー 'master_name'を使用して渡します。

+0

こんにちはDesiree、 "フィドルスティック"はどういう意味ですか?特定のジョブキューがわからない場合は、デフォルトのジョブキューを指定できますか? – platypus

+0

私の例で私のキュー名は 'fiddlesticks'ですが、私はどのようにデフォルトのジョブキューを指定するのか分かりません。 –

関連する問題