2012-10-25 9 views
5

Mam Celery działa i wszystko działa dobrze.Sprzątanie tabeli taskmeta selera

Seler używa domyślnie tabeli bazy danych do przechowywania wyników zadania o nazwie celery_taskmeta. Ten stół rośnie bardzo szybko. Czytałem dokumenty, ale nie znalazłem żadnej wskazówki na temat czyszczenia starych wpisów.

Czy jest zaplanowane zadanie automatycznie przez celerybeat, które czyści ten stół lub czy muszę coś tutaj skonfigurować?

[EDIT]

Jest to związane z result backend settings? Jest to nieco mylące, ponieważ dokumentacja mówi, że nie ma wartości domyślnej. Ale wydaje się, że domyślnie jest to database i używa konfiguracji default normalnej Django database configuration.

Odpowiedz

1

Przeczytałeś dokumentację Selera.

Django-selera overrides Wynik dla Ciebie.

+0

W [dokumentacji django-selera] (http://docs.celeryproject.org/en/latest/django/) nigdzie nie wspomniano, jakie ustawienia domyślne zostały wykonane. Czytanie dokumentacji django-selekcji nie odpowiada na drugie pytanie, a sama dokumentacja selera nie odpowiada na główne pytanie. – Martin

+0

Ale twój link odpowiada na drugie pytanie. – Martin

+0

Ale co z tym zrobić? – Alper

2

można ręcznie wyczyścić tej tabeli w ten sposób:

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

2

Może dokumentacja została napisana po zaksięgowaniu pytanie. Strona w http://celery.readthedocs.org/en/latest/configuration.html zapewnia odpowiedź:

Wbudowany okresowych zadania usunie wyniki po [czas ustawiony w dyrektywie konfiguracji CELERY_TASK_RESULT_EXPIRES] ... Domyślna wygasa po 1 dniu.

W przypadku typowej instalacji Django ustawia się serwer pocztowy na bazę danych. (Dlatego widzisz wyniki zapisane w celery_taskmeta tabeli bazy danych). Dyrektywa ta konfiguracja dla tego ustawienia wygląda następująco:

CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend' 

Sprawdziłem własną instalację i, rzeczywiście, jest tam codziennie zadanie okresowe o nazwie selekcja.backend_cleanup, które zostało utworzone automatycznie po zainstalowaniu selera (lub może po zainstalowaniu django-selera).

Dla okresowego zadania do uruchomienia Uważam, że należy uruchomić demona/usługę selekcji celerybeat.