Windows+Celery4+eventlet,异步报错:Recursion Error: maximum recursion depth exceeded while calling a Python object
前情提要:Windows环境下,使用Celery4和eventlet,在Django项目中启用异步和周期,报错如下:
RecursionError: maximum recursion depth exceeded while calling a Python object
经过排查,发现celery 4以上的版本不支持windows,要想使celery4以上的版本可以支持windows,可以使用以下方法:
一、使用eventlet
安装
pip install eventlet
使用
python manage.py celery worker -l info -P eventlet
但是,如果涉及到多进程,eventlet则会出错,就如我们开头的错误,就是多进程错误,这里就需要使用gevent
二、使用gevent
1、安装:
pip install gevent
2、在manage.py
文件中添加以下代码
import gevent.monkey
gevnt.monkey.patch_all()
3、启用
python manage.py celery worker -l info -P gevent
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」