2013-04-22 24 views
8

Celery'in varsayılan RabbitMQ yerine Redis üzerine inşa edilmesini istiyorum.Unix soketi üzerinden Redis ile görüşmek için Kerevizi yapılandırın

Celery documentation açıklıyor:

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

URL'nin biçimindedir::

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

Yapılandırma sadece Redis veritabanının konumunu yapılandırmak kolay,

düzeni sonuçta alanlar isteğe bağlıdır ve 0.

Ancak, Redis bir liman dinlemek DEĞİL kurdunuz veritabanı kullanılarak, liman 6379 tarihinde localhost'a varsayılan olacaktır, ancak bunun yerine bir sokete dinlemek için.

Bunu desteklemek için bir URI planı var mı?

+0

sadece merak ediyorum, yerel bir bağlantı noktasını dinlemenin önemi nedir? –

+0

Daha sonra port Internet'e açıktır ... – Oddthinking

+0

, redis'i 127.0.0.1'e bağlayabilir ve sadece localhost'a erişebilir veya sadece ip adreslerine erişimi kısıtlamak için güvenlik duvarı kuralları oluşturabilirsiniz. –

cevap

13

Redis prizler, Kereviz 1.3'ten beri kullanılabilir. sözdizimi:

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

belirli bir veritabanını kullanmak isterseniz:

:

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

dokümantasyon kadar yapılacak güncel ancak daha fazla ayrıntı için bu sorunları kontrol edebilirsiniz değildir

+0

gerek yok eğer TCP için kurban hiçbir NOKTASI Kereviz sonuç arka ucu için url hakkında nelerdir? –

1

Kereviz redis aracısı soket bağlantısını desteklemiyor, TCP bağlantıları şu anda desteklenen tek yoldur.

Bu projeyi, bir googling'in ardından github üzerinde celery-redis-unixsocket buldum. Bunun senin için işe yarayıp yaramayacağına bir göz atabilirsin.