清理任务指定芹菜表



我的芹菜正在奔跑,一切都很好。

芹菜默认使用数据库表来存储任务结果,称为celery_taskmeta。这张桌子的增长非常快。我阅读了文档,但没有找到有关清理旧条目的任何暗示。

是否有celerybeat自动安排的任务,可以清洁该表,或者我必须在这里配置某些内容?

[edit]

这与结果后端设置有关吗?这有点令人困惑,因为文档说,这没有默认值。但是看来database是默认值,它使用了普通Django数据库配置的default配置。

您可以以这种方式手动清洁此表:

from djcelery.models import TaskMeta, states TaskMeta.objects.filter(status=states.SUCCESS).delete()

也许在您发布问题后写了文档。该页面http://celery.readthedocs.org/en/latest/configuration.html提供答案:

内置的周期性任务将在[celery_task_result_expires配置指令中设置的时间之后删除结果...默认值是在1天后到期。

对于典型的Django安装,您将后端设置为数据库。(这就是为什么您在数据库的 celery_taskmeta 表中看到存储的结果。)此设置的配置指令看起来如下:

CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend'

我检查了自己的安装,可以肯定的是,有一个每天的周期性任务,称为 celery.backend_cleanup ,当我安装 celery 时,它是自动创建的(或者当我安装时已安装 django-celery )。

要进行定期任务,我相信您必须运行 celerybeat 守护程序/服务。

您已经阅读了芹菜的文档。

django-celery覆盖您的结果后端。

如前所述,清理已自动完成,默认情况下是自动完成的。您需要的只是使用此查询来更新表大小:真空Full Celery_taskMeta

相关内容

  • 没有找到相关文章

最新更新