Python芹菜socket.error:[Errno 61]连接拒绝

问题描述:

我正在使用芹菜3.0,并具有如下配置文件。Python芹菜socket.error:[Errno 61]连接拒绝

celeryconfig.py

BROKER_URL = 'redis://localhost:6379/0' 
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' 
CELERY_TASK_SERIALIZER = 'json' 
CELERY_RESULT_SERIALIZER = 'json' 

CELERY_IMPORTS = ("tasks",) 
CELERY_TASK_RESULT_EXPIRES = 300 

tasks.py

import celery 

@celery.task 
def function(x,y): 
    return x + y 

和function.py

from tasks import function 

print function.delay(4,4).get() 

我用下面的命令

celeryd --loglevel=INFO --config=celeryconfig 
运行该应用程序

一切都很好,直到现在。我有redis和芹菜运行并获得答案。

但是当我运行从所谓的并行化的另一个文件中的函数命令,

我得到的套接字错误,

socket.error: [Errno 61] Connection refused 

我的文件就像下面,

from examples.dummy.tasks import function 
print function.delay(4,4).get() 

任何想法?

+0

你在机器上安装了redis软件包和redis-server吗? – 2013-03-08 13:48:07

问题是,

我是从比我的并行化不同的路径下运行celeryconfig.py。

当我将celeryconfig.py带到与paralellizer相同的路径时,它解决了问题。

我有同样的问题,这个问题是我错过了这个代码在我的项目的__init__.py:

from __future__ import absolute_import 

# This will make sure the app is always imported when 
# Django starts so that shared_task will use this app. 
from .celery import app as celery_app 

我希望这将是有人在那里有用...

+0

真棒,谢谢! – inoks 2016-08-10 17:16:42

当初同样的问题,最终意识到rabbitmqredis进程已停止。

在Mac上,如果这些服务是通过自制软件安装,那么你可以验证这些服务是否正在运行通过运行在终端下面的命令,

brew services list 

可以通过重新启动服务,(如果通过brew安装)

brew services restart rabbitmq 
brew services restart redis