Django Celery-无法连接到amqp://guest@127.0.0.000:5672//



我正在尝试设置Django Celery。我正在学习教程

http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html

当我跑步时$python manage.py芹菜工人--loglevel=info

我得到

[Tasks]

/Users/msmith/Documents/dj/venv/lib/python2.7/site-packages/djcelery/loaders.py:133:     UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in     production environments!
warnings.warn('Using settings.DEBUG leads to a memory leak, never '
[2013-08-08 11:15:25,368: WARNING/MainProcess] /Users/msmith/Documents/dj/venv/lib/python2.7/site-packages/djcelery/loaders.py:133: UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in production environments!
warnings.warn('Using settings.DEBUG leads to a memory leak, never '
[2013-08-08 11:15:25,369: WARNING/MainProcess] celery@sfo-mpmgr ready.
[2013-08-08 11:15:25,382: ERROR/MainProcess] consumer: Cannot connect to     amqp://guest@127.0.0.1:5672/celeryvhost: [Errno 61] Connection refused.
Trying again in 2.00 seconds...

以前有人遇到过这个问题吗?

设置.py

# Django settings for summertime project.
import djcelery
djcelery.setup_loader()
BROKER_URL = 'amqp://guest:guest@localhost:5672/'
...
INSTALLED_APPS = {
    ...
    'djcelery',
    'celerytest'
}

wsgi.py

import djcelery
djcelery.setup_loader()

更新2022年1月:这个答案已经过时了。如评论中所建议的,请参考此链接

问题是您正试图连接到RabbitMQ的本地实例。查看settings.py 中的这一行

BROKER_URL = 'amqp://guest:guest@localhost:5672/'

如果您目前正在进行开发,您可以避免设置Rabbit及其周围的所有混乱,只需使用Django数据库中的消息队列的开发版本。

将您以前的配置替换为:

BROKER_URL = 'django://'

并添加此应用程序:

INSTALLED_APPS += ('kombu.transport.django', )

最后,使用启动工作程序

./manage.py celery worker --loglevel=info

来源:http://docs.celeryproject.org/en/latest/getting-started/brokers/django.html

由于rabbitmq未启动,所以出现此错误。如果您通过brew安装了rabbitmq,则可以使用brew services start rabbitmq 启动它

您可以将这些行添加到您的设置中。py:

CELERY_BROKER_URL = 'redis://localhost:6379'
CELERY_RESULT_BACKEND = 'redis://localhost:6379'

并运行:

celery -A yourProjectName worker -l info

如果您在生产环境中工作,

您必须首先安装并设置rabbitmqserver。您可以参考rabbitmq网站了解安装步骤。

在设置中,您必须写入以下行:

CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend',
BROKER_URL = 'amqp://guest:guest@localhost:5672//'

在rabitmqserver的所有设置之后,您必须运行这两个命令,

export C_FORCE_ROOT='true'
celery -A transcoder(name of app) worker --loglevel=info

此错误意味着芹菜后端设置不正确,因此无法连接到后端。

如果你刚开始用django指导芹菜。您可以尝试以下设置。

CELERY_BROKER_URL = 'amqp://guest:guest@localhost:5672//'
CELERY_RESULT_BACKEND = 'db+sqlite:///results.db'

当您通过pip安装Celery时,您应该选择要使用的版本,如redis、rabbitmq、django等。

如文件中所述:https://pypi.org/project/celery/

BundlesCelery还定义了一组可用于安装Celery的捆绑包以及给定功能的依赖项。

您可以在需求中或在pip命令行中使用括号指定这些内容。可以通过逗号分隔多个捆绑包来指定。

示例:

$ pip install "celery[librabbitmq]"
$ pip install "celery[librabbitmq,redis,auth,msgpack]"

如果以上所有解决方案都不起作用,您可以尝试使用以下方法:turn off your network connection (wifi or wire)

这很奇怪,但有时它对我来说是有效的!

似乎它与本地网络设备有关,而不是RabbitMQ服务。

我的屏幕录制:https://drive.google.com/file/d/13t35Lzh3JLsCbGjRag0uiDhcYz1JuHq7/view?usp=sharing

确保在全局中运行rabbit服务器,在我的情况下,这就是问题所在。

相关内容

最新更新