前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flask 学习-59.解决celery 在windows 上接收任务不执行的问题

Flask 学习-59.解决celery 在windows 上接收任务不执行的问题

作者头像
上海-悠悠
发布2022-09-13 15:45:43
1.3K0
发布2022-09-13 15:45:43
举报

前言

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服务

代码语言:javascript
复制
>celery -A your_application.celery worker -l info

当执行任务的时候,从运行日志可以看到任务已经received 了

代码语言:javascript
复制
 Task demo/add[7167654b-e5eb-4d35-b82d-ac36c0b8926e] received

解决方案:

windows 启动 celery 需要指明使用 eventlet 进程池, 需先安装eventlet

代码语言:javascript
复制
pip install eventlet

启动celery worker服务的时候,使用-P eventlet参数

代码语言:javascript
复制
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可以正常使用。

2022年第 12期《python接口web自动化+测试开发》课程,9月17号开学!

本期上课时间:2022年9月17号 - 2022年12月17号,周六周日上午9:00-11:00

报名费:报名费3000一人(周期3个月)

联系微信/QQ:283340479

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 环境描述
  • 启动服务
  • 解决方案:
    • 报名费:报名费3000一人(周期3个月)
      • 联系微信/QQ:283340479
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档