Flask 学习-59.解决celery 在windows 上接收任务不执行的问题
Posted 上海-悠悠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask 学习-59.解决celery 在windows 上接收任务不执行的问题相关的知识,希望对你有一定的参考价值。
前言
windows10 的环境,python3.8环境,使用celery 5.x 的版本,发现任务接收了,但是一直没执行,无返回结果。
早期的celery 3.x版本是可以支持windows 平台的,但是跟python3.8 不兼容了。
环境描述
以下是celery 官方文档上对版本的要求
Celery 5.2 版运行于
- Python❨3.7、3.8、3.9、3.10❩
- PyPy3.7、3.8 ❨7.3.7❩
Celery 4.x 是支持 Python 2.7 的最后一个版本,
Celery 5.x 需要 Python 3.6 或更高版本。
Celery 5.1.x 还需要 Python 3.6 或更高版本。
Celery 5.2.x 需要 Python 3.7 或更新版本。
如果您运行的是旧版本的 Python,则需要运行旧版本的 Celery:
Python 2.7 或 Python 3.5:Celery 系列 4.4 或更早版本。
Python 2.6:Celery 系列 3.1 或更早版本。
Python 2.5:Celery 系列 3.0 或更早版本。
Python 2.4 是 Celery 系列 2.2 或更早版本。
Celery 是一个资金很少的项目,所以不支持 Microsoft Windows。请不要打开与该平台相关的任何问题。
启动服务
启动celery worker服务
>celery -A your_application.celery worker -l info
当执行任务的时候,从运行日志可以看到任务已经received 了
Task demo/add[7167654b-e5eb-4d35-b82d-ac36c0b8926e] received
解决方案:
windows 启动 celery 需要指明使用 eventlet 进程池, 需先安装eventlet
pip install eventlet
启动celery worker服务的时候,使用-P eventlet
参数
celery -A your_application.celery worker -P eventlet -c 2 -l info
flask + celery 完整示例参考这篇https://www.cnblogs.com/yoyoketang/p/16668657.html
备注:
在windows上使用celery,用ctrl+C无法停掉访问,会卡死,只能强制关闭。其它linux、mac可以正常使用。
以上是关于Flask 学习-59.解决celery 在windows 上接收任务不执行的问题的主要内容,如果未能解决你的问题,请参考以下文章