2013-05-19 74 views
1

我正在使用Django和RabbitMQ的芹菜,並希望看到在數據庫表中的任務狀態。不幸的是,沒有條目寫入表djcelery_taskstate,我無法弄清楚爲什麼。芹菜+ Django的 - 如何任務狀態寫入到數據庫

我的設置:

CELERY_ENABLE_UTC = True 
BROKER_URL = "amqp://guest:[email protected]:5672/" 
CELERY_RESULT_BACKEND = "database" 
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' 

CELERY_TRACK_STARTED = True 
CELERY_SEND_EVENTS = True 

CELERY_IMPORTS = ("project_management.tasks", "accounting.tasks", "time_tracking.tasks",) 
CELERY_ALWAYS_EAGER = False 

import djcelery 
djcelery.setup_loader() 

我的任務:

class TestTask(Task): 

    def run(self, po_id): 
     self.update_state(state=states.STARTED, meta={'total': 0, 'done': False}) 
     #do something.. 
     self.update_state(state=states.SUCCESS, meta={'total': 100, 'done': True}) 

我開始的任務,因爲在一個視圖如下:

TestTask.apply_async(args=[], kwargs={}) 

我開始芹菜工人如下。

python manage.py celeryd -v 1 -B -s celery -E -l INFO 

控制檯給我下面的輸出:

[2013-05-19 11:10:03,774: INFO/MainProcess] Task accounting.tasks.TestTask[5463b2ed-0eba-451d-b828-7a89fcd36348] succeeded in 0.0538640022278s: None 

任何想法有什麼不對我的設置?

+0

你還運行'蟒蛇manage.py celerycam'? – Ngenator

回答

2

您需要啓動該snapshot camera以及爲了查看數據庫中的結果。

python manage.py celerycam 

運行完畢後,您將能夠看到djcelery表中的條目。

+0

謝謝。現在正常工作! –