【问题标题】:Python Celery socket.error: [Errno 61] Connection refusedPython Celery socket.error: [Errno 61] 连接被拒绝
【发布时间】:2013-02-24 01:16:32
【问题描述】:

我使用的是 Celery 3.0,并且有如下配置文件。

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 和 celery 正在运行并得到答案。

但是当我从另一个名为 parallelizer 的文件中运行函数命令时,

我收到套接字错误,

 socket.error: [Errno 61] Connection refused

我的文件如下,

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

有什么想法吗?

【问题讨论】:

  • 你的机器上是否安装了redis包和redis-server?

标签: python celery celery-task


【解决方案1】:

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

在 mac 上,如果这些服务是通过 homebrew 安装的,那么您可以通过在终端上运行以下命令来验证这些服务是否正在运行,

brew services list

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

brew services restart rabbitmq
brew services restart redis

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,问题是我在项目的 __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
    

    我希望它对那里的人有用......

    【讨论】:

      【解决方案3】:

      问题是,

      我在与并行程序不同的路径下运行 celeryconfig.py。

      当我使用并行程序将 celeryconfig.py 带到同一路径时,它解决了问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-11
        • 2013-04-06
        • 2012-07-20
        • 2017-04-10
        • 1970-01-01
        • 2011-08-02
        • 2014-09-28
        相关资源
        最近更新 更多