You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Celery异步任务被worker接收后未执行,目标文件未生成求助

问题原因

Celery 4.x及以上版本已经停止官方支持Windows系统,你当前使用的默认prefork并发池在Windows环境下无法正常执行已接收的任务,因此文件写入逻辑没有实际运行,自然不会生成test.txt。

解决方法

你可以选择以下任意一种方案修复:

  • 方案1:更换兼容Windows的并发池(推荐,支持多并发)

    1. 安装eventlet依赖:
    pip install eventlet
    

    如果Python3.10与最新版eventlet存在兼容问题,可指定安装兼容版本:pip install eventlet==0.33.0
    2. 启动worker时指定使用eventlet池:

    celery -A main worker -l INFO -P eventlet
    

    也可以换成gevent池,操作逻辑一致:先安装gevent,启动参数改为-P gevent即可。

  • 方案2:使用单进程solo池(适合本地测试)
    不需要额外安装依赖,直接修改启动命令即可:

    celery -A main worker -l INFO --pool=solo
    

    这个方案是单进程运行,并发性能低,仅适合本地开发调试使用。

注意事项

你代码中使用的是相对路径./test.txt,文件最终会生成在你执行celery启动命令的工作目录下,而非main.py脚本所在的目录,任务执行成功后可到对应目录下查找文件。
任务执行成功时Celery日志会输出类似Task main.hello[xxx] succeeded in 5.0s: 'hello world'的记录,可通过该日志确认任务是否正常跑完。

内容的提问来源于stack exchange,提问作者januw a

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:54:00