celery eventlet任务有很多套接字错误

Ben*_*ing 3 django celery eventlet django-celery

当使用--pool = eventlet选项运行我的芹菜工作者时,我从amqplib.client_0_8.method_framing.read_method获得了很多"IOError:Socket closed"异常.我也从eventlet.hubs.hub.switch中看到了很多超时异常.

我正在使用类似于https://gist.github.com/821848的async_manage.py脚本,运行如下的工作:

./async_manage.py celeryd_detach -E --pool=eventlet --concurrency=120 --logfile=<path>
Run Code Online (Sandbox Code Playgroud)

这是一个已知问题,还是我的配置或设置有问题?

我正在运行djcelery 2.2.4,Django 1.3和eventlet 0.9.15.

Ben*_*ing 5

问题是一些阻止的代码的副作用.我设法使用http://unethicalblogger.com/2010/08/28/unclog-the-tubes-blocking-detection-in-eventlet.html中描述的eventlet选项检测阻止代码

有两个地方发生阻塞:DNS查找和MySQL数据库访问.我设法解决了第一个安装dnspython包,第二个我在eventlet中使用未记录的MySQLdb选项:

import eventlet
eventlet.monkey_patch()
eventlet.monkey_patch(MySQLdb=True)
Run Code Online (Sandbox Code Playgroud)