2013-04-22 71 views
8

我希望Celery能夠在Redis上構建而不是默認的RabbitMQ。配置Celery通過Unix套接字與Redis通信

Celery documentation解釋:

配置很容易,只要配置您的Redis數據庫的位置:

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

當URL是格式:

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

該方案後,所有字段都是可選的,默認爲本地主機端口6379,使用數據庫0

不過,我有Redis的設置爲不聽口,而是聽一個插座。

是否有URI方案來支持這個?

+0

只是好奇,最近redis沒有收聽本地端口? – 2013-04-22 18:20:31

+0

然後該端口對互聯網開放... – Oddthinking 2013-04-22 18:32:24

+0

這是不正確的,你可以將redis綁定到127.0.0.1,並使其只能訪問本地主機,或者你可以創建防火牆規則來限制只訪問一組IP地址。 – 2013-04-22 18:39:58

回答

13

Redis套接字自Celery 1.3起可用。語法是:

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

如果你想使用一個特定的數據庫:

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

的文檔沒有及時做更新,但你可以檢查這個問題的更多細節:

+0

芹菜結果後端的URL如何? – 2017-01-13 16:48:28

1

芹菜redis broker不支持socket連接,TCP連接是目前唯一支持的方式。

我發現這個項目,celery-redis-unixsocket後github上一些谷歌搜索。你可能會看看是否適合你。