我想在Django 1.6.2应用程序中使用Celery和Redis,我正在运行OS X 10.9.5的Mac上开发。首先,我正在学习Celery文档的"第一步"。然而,当我尝试使用以下命令启动Celery时,如文档中所示:
celery -A tasks worker --loglevel=info
我得到这个错误:
[<date>: ERROR/MainProcess] consumer: Cannot connect to redis://127.0.0.1:6379//: Error 61 connecting to 127.0.0.1:6379. Connection refused.. Trying again in 2.00 seconds...
从我的研究来看,问题的出现可能是因为我没有启动Redis服务器。当我查看我的流程时,我看不到它在运行。然而,Celery文档没有讨论启动服务器,而且我在虚拟环境的redis分支中也没有看到"redis-server"命令。
我用这个命令安装了redis:
pip install -U celery[redis]
然后,我将/usr/lib添加到DYLD_FALLBACK_LIBRARY_PATH环境变量中。
我还在Django设置中添加了以下行:
BROKER_URL = 'redis://127.0.0.1:6379/0'
我试图运行的Python脚本是文档中显示的示例:
# tasks.py
from celery import Celery
app = Celery('tasks', broker='redis://127.0.0.1:6379')
@app.task
def add(x, y):
return x + y
我尝试使用"localhost"而不是"127.0.0.1",但这并没有解决问题。我做错了什么?
谢谢!
是的,问题是我实际上并没有安装Redis。这两篇文章很有帮助:
在Mac OS X上编译Web开发环境
如何在OS X 上安装redis