2012-05-20 34 views
10

Veri sonuçlarını saklamak için djangocelery'ı kurmaya çalışıyorum.Djcelery sonuçlarını düzgün bir şekilde nasıl yapılandıracağız veritabanı için geriye doğru

belirlediğim:

CELERY_RESULT_BACKEND = 'djcelery.backends.database.DatabaseBackend' 

sonra senkronize ve db (hiçbir hata) göç etti.

Kereviz çalışıyor ve görevler işleniyor (sonuçları alabiliyorum), ancak yönetici herhangi bir görev olmadığını gösterir. Veritabanında iki tablo celery_taskmeta ve djcelery_taskmeta vardır. Birincisi sonuçları tutuyor ve ikincisi yönetici olarak gösteriliyor. Herkesin uygun şekilde nasıl yapılandırılacağı konusunda bilgi var mı? Djcelery öğesini ayarlarsanız, CELERY_RESULT_BACKEND="database" ayarını yapın ya da djcelery varsayılan olarak ayarlandığından bu satırı yazmak için bile uğraşmayın bile.

+0

olası izleme [Monitoring Kereviz, ne kullanmalıyım?] (Http://stackoverflow.com/questions/5809408/monitoring-celery-what-should-i-use) –

cevap

18

the doc, denetleyin. Sonuç celery_taskmeta tabloda saklanır

, kendiniz yükseltEND_LINK djcelery.models.TaskMeta kayıt olmalıdır: doğru cevabı ile

# in some admin.py, which is contained by an app after `djcelery` in `INSTALLED_APPS` 
# or directly in djcelery/admin.py 

from djcelery.models import TaskMeta 
class TaskMetaAdmin(admin.ModelAdmin): 
    readonly_fields = ('result',)  
admin.site.register(TaskMeta, TaskMetaAdmin) 
+1

"CELERY_RESULT_BACKEND" ifadesini "" olarak değiştirdim veritabanı "' ama hala id çalışmıyor. Uygulama djcelery içinde yönetici içinde TaskState tablo var, ve yönetici kayıtlı kayıtlı bu uygulamadan diğer modeller çalışıyoruz - işçi modeli bağlı çalışanlar gösterir. –

+1

TaskState, izleme içindir: http://docs.celeryproject.org/en/latest/userguide/monitoring.html#django-admin-monitor – asksol

+1

Ayrıca, izleme tüm aracılar için çalışmaz. Sadece bu tabloda 'fanout' desteği bulunanlar: http://kombu.readthedocs.org/en/latest/introduction.html#transport-comparison – asksol

10

İlgili soru here olduğunu. örneğin yapılandırma güncellemesini Hareketli

Sen cidden bu görevler sonuçlarına sonra

python manage.py celery worker -E 

ve

python manage.py celerycam 

yönetici görüntülenir çalışmalıdır (Djcelery> Görevler)

0

Dosya celery.py sonuna
app.conf.update (CELERY_RESULT_BACKEND = 'djcelery.backends.database.DatabaseBackend')

benim için hile yaptı.