Python Django芹菜活动-获取;“找不到地址”;错误
我目前正在使用芹菜默认预处理进行并发,我想使用Eventlet 我尝试安装Eventlet并将其用于并发,但出现以下错误:Python Django芹菜活动-获取;“找不到地址”;错误,python,django,celery,eventlet,Python,Django,Celery,Eventlet,我目前正在使用芹菜默认预处理进行并发,我想使用Eventlet 我尝试安装Eventlet并将其用于并发,但出现以下错误: [2017-01-01 04:11:14,233: ERROR/MainProcess] consumer: Cannot connect to amqp://application:**@rabbit:5672//: [Errno -2] No address found. 但它在默认的预工作中运行良好,我可以异步执行作业 我目前正在使用django 1.10和芹菜4.
[2017-01-01 04:11:14,233: ERROR/MainProcess] consumer: Cannot connect to amqp://application:**@rabbit:5672//: [Errno -2] No address found.
但它在默认的预工作中运行良好,我可以异步执行作业
我目前正在使用django 1.10和芹菜4.0.1
-------------- celery@worker v4.0.1 (latentcall)
---- **** -----
--- * *** * -- Linux-4.4.0-57-generic-x86_64-with-Ubuntu-16.04-xenial 2017-01-01 03:59:11
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app: fivefrets:0x7f97ca281a58
- ** ---------- .> transport: amqp://fivefrets:**@rabbit:5672//
- ** ---------- .> results: disabled://
- *** --- * --- .> concurrency: 10 (eventlet)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** -----
-------------- [queues]
.> celery exchange=celery(direct) key=celery
有人能帮忙吗?我在谷歌上查不到答案
如果有任何问题,请告诉我
不确定我缺少了什么“找不到地址”看起来像是DNS解析错误。如果可以解析rabbitmq服务器的地址,则问题可能出在Eventlet上
如果您使用的是Eventlet 0.20.0,看起来可能会破坏DNS解析。见:
如果是这种情况,也许您可以使用不同版本的eventlet,比如
pip安装--upgrade eventlet==0.19.0
或pip安装--upgrade eventlet==0.20.1
如果您使用eventlet==0.20.0
遇到错误,则表示您的配置不正确/etc/resolv.conf
带有搜索域
,但您正在发出一个相对主机名rabbit
,对于该主机名,正确的DNS解析只能尝试rabbit.domain
查询名称服务器
适当的解决方案选项:
- 将
域引入您的网络,将resolv.conf、DNS记录和应用程序配置更改为.local
。综合考虑,这是最好的办法rabbit.local
- 从
/etc/resolv.conf
- 在应用程序配置中的单级主机名中添加尾随点。-这使完全限定的主机名始终能够正确解析
对于不太完美的方式,升级
eventlet>=0.20.1
它包含一个补丁,该补丁将尝试顶级查询,就像它们完全合格一样(在本例中为rabbit.
)谢谢。。!pip安装中的解决方案—它工作正常。感谢您为我指出正确的问题,请将其更改为eventlet==0.20.1