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

为何Celery Chord任务结果占用数GB存储空间?

Celery Chord大规模任务导致存储暴涨问题

我当前运行的Celery任务代码如下:

task_list = [a.s(id) for id in id_list]
a_callback = callback_function.s()
chord(task_list)(a_callback)

当任务列表规模达到1-2万条时,django_celery_results_chordcounter表会在短时间内占用数GB存储空间——这是因为Celery的chord机制依赖该表跟踪所有子任务的完成状态,每一个子任务都会在表中生成一条状态记录,大规模任务量直接导致存储快速累积。

可行的解决办法:

  • 拆分任务批次:不要一次性提交上万条任务的chord,将任务列表拆分成若干小批次(比如每批次1000条),分批执行chord,每批完成后可手动清理对应计数器记录。
  • 更换存储后端:将django_celery_results的存储后端从数据库切换到Redis这类内存型存储,既能提升状态跟踪性能,也能避免数据库磁盘空间被大量占用。
  • 开启自动清理:配置django_celery_results的自动清理策略,定期删除已完成chord的计数器记录,防止历史数据无限堆积。

内容的提问来源于stack exchange,提问作者Code is Cheap Show me The Talk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 05:15:55