2010-07-28 16 views
9

Tüm sarkaç görevlerini izleyebileceğim bir yerim olsun istiyorum.Celery kullanarak bekleyen tüm görevler için bir gösterge panosunu nasıl yapabilirim?

ben görüntülemek çıkması gereken görevler gibi tescilli işlevleri/sınıflar, ancak gerçek zamanlanmış işler bahsetmiyorum

: adı, task_id, eta, işçi vb

kereviz 2.0.2 ve djcelery kullanma Belgelerinde 'inceleme' buldum. Denedim:

from celery.task.control import inspect 

def get_scheduled_tasks(nodes=None): 

    if nodes: 
     i = inspect(nodes) 
    else: 
     i = inspect() 

    scheduled_tasks = [] 
    dump = i.scheduled() 
    if dump: 
     for worker, tasks in dump: 
       for task in tasks: 
        scheduled_task = {} 
        scheduled_task.update(task["request"]) 
        del task["request"] 
        scheduled_task.update(task) 
        scheduled_task["worker"] = worker 
        scheduled_tasks.append(scheduled_task) 

    return scheduled_tasks 

Ama dump = i.scheduled() sonsuza kadar asılı kalır.

Garip, çünkü aksi takdirde her şey çalışır.

Ubuntu 10.04'ü kullanma, django 1.0 ve virtualenv.

cevap

4

Tüm programlanmış görevleri gösteren bir web sunucusunu çalıştıran celerymon'a bakın. Kuyruklu atıştırmalık cini tarafından yakalanan ve sıraya konan olayları açmak için -E bayrağı ile kereviz çalıştırmak zorunda kalacaksınız.

0

Çiçek - Kereviz izleme aracı deneyin.
Bu, sıraya alınmış görevleri izlemek için gerçekten kullanışlı bir gösterge tablosu sağlar.

Flower - Celery monitoring tool

İlgili konular