gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 11:56:45 26 4
gpt4 key购买 nike

当使用 --pool=eventlet 选项运行我的 celery worker 时,我从 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>

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

我正在运行 djcelery 2.2.4、Django 1.3 和 eventlet 0.9.15。

最佳答案

问题是某些阻塞代码的副作用。我设法使用 in this article 中描述的 eventlet 选项检测到阻塞代码.

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

import eventlet
eventlet.monkey_patch()
eventlet.monkey_patch(MySQLdb=True)

关于django - celery eventlet 任务有很多套接字错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6415022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com