我目前使用芹菜默认预处理并发,我想使用Eventlet。
我试图安装Eventlet并将其用于并发,但出现以下错误:

[2017-01-01 04:11:14,233: ERROR/MainProcess] consumer: Cannot connect to amqp://application:**@rabbit:5672//: [Errno -2] No address found.

但它在默认的prefork中运行良好,我可以异步执行作业。
我正在使用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解析。见:https://github.com/nameko/nameko/issues/392
如果是这样的话,也许您可以使用不同版本的eventlet,比如pip install --upgrade eventlet==0.19.0pip install --upgrade eventlet==0.20.1

关于python - Django Celery Eventlet-出现“找不到地址”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41413335/

10-11 21:56