2013-04-22 6 views
8

CeleryをデフォルトのRabbitMQではなくRedisでビルドしたいと思います。CeleryがUnixソケット経由でRedisと通信するように設定する

Celery documentationは説明する:

BROKER_URL = 'redis://localhost:6379/0'

URLはの形式である:

redis://:[email protected]:port/db_number

設定は自分のRedisのデータベースの場所を設定し、簡単です

スキームの後にすべてのフィールドはオプションであり、0

は、しかし、私はRedisのポートに耳を傾けることはありませんセットアップされているデータベースを使用して、ポート6379でlocalhostにデフォルト設定されますが、代わりにソケットに耳を傾けます。

これをサポートするURIスキームはありますか?

+0

ちょうど興味があります、ローカルポートに聞いていないredisとの問題は何ですか? –

+0

それから、ポートはインターネットに公開されています... – Oddthinking

+0

は正しくありません。127.0.0.1にredisをバインドしてlocalhostだけにアクセスできるようにするか、またはファイアウォールルールを作成してIPアドレスのセットだけにアクセスを制限できます。 –

答えて

13

RedisソケットはCelery 1.3以降で使用できます。構文は次のとおりです。

BROKER_URL = 'redis+socket:///tmp/redis.sock' 

あなたが特定のデータベースを使用する場合:

BROKER_URL = 'redis+socket:///tmp/redis.sock?virtual_host=1' 

をドキュメントがアップ-DO-日付ではありませんが、詳細については、この問題を確認することができます。

+0

セロリ結果バックエンドのURLはどうですか? –

1

セロリの赤いブローカーはソケット接続をサポートしていません。現在のところ、TCP接続のみがサポートされています。

私はこのプロジェクトを見つけました.celery-redis-unixsocketはグーグルでgithubで見つけました。それがあなたのために働くかどうか見ているかもしれません。

関連する問題