首页 > 编程语言 >Celery正常启动后收到任务但不执行的解决方法

Celery正常启动后收到任务但不执行的解决方法

来源:互联网 2026-07-24 08:30:10

Celery在Windows系统上启动后能接收任务但不执行,且无错误提示。根本原因是Windows不支持Celery原生prefork并发(缺少fork调用),需借助eventlet模拟环境。改用eventlet池启动后任务成功执行。该问题常见于Windows部署,需安装eventlet并设置并发池为eventlet,此方案已验证有效。

折腾了一整天,全耗在Celery的异常处理上,确实有点心力交瘁。不过好在最后总算把问题理清了,记录一下,给遇到同样坑的朋友参考。

  • 问题一:Django 1.11环境下用Celery 4,报错ValueError: not enough values to unpack (expected 3, got 0)
  • 问题二:Celery正常启动后能收到任务,但就是不执行,也没有任何错误提示……

解决方案

网上搜了一圈,问的人不少,但真正能用的答案几乎没有。只能自己一个个试,最后发现两个问题竟然指向同一个原因——说来也怪,是因为换了一次电脑。

长期稳定更新的攒劲资源: >>>点此立即查看<<<

1、先确认Celery服务启动正常

服务启动没问题,日志看起来一切正常。

Celery正常启动后收到任务但不执行的解决方法

2、任务能收到,也有提示信息

Celery正常启动后收到任务但不执行的解决方法

3、解决办法

启动时改用eventlet方式:

pip install eventlet 
celery -A celery_tasks.main worker -l info -P eventlet -c 10
# -c是协程数量,生产环境可以用1000

原因:

真相是,Celery在Windows下天生跑不了任务,必须借助eventlet这个‘外设’来模拟并发环境。

Unable to run tasks under Windows

4、成功后的截图,心情终于轻松了

Celery正常启动后收到任务但不执行的解决方法

Celery正常启动后收到任务但不执行的解决方法

总结

以上是这次踩坑的详细记录,给遇到类似问题的朋友一个参考。希望同样被Windows+Celey折腾过的人,能早点看到这个。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。