我使用django-celery來完成比平常更長時間運行的任務。所有的時間,直到任務正在運行客戶端檢查當前任務的結果。問題是如果celeryd沒有運行或者由於某些錯誤而終止,請檢查該任務是否仍然給出PENDING結果。如果工作人員存在問題,我想將這些信息提供給客戶,並停止檢查任務的狀態,並終止任務。 代碼我使用任務的檢查狀態是:如何檢查是RabbitMQ從芹菜獲取任務
res = AsyncResult(task_id)
result = res.status
我使用django-celery來完成比平常更長時間運行的任務。所有的時間,直到任務正在運行客戶端檢查當前任務的結果。問題是如果celeryd沒有運行或者由於某些錯誤而終止,請檢查該任務是否仍然給出PENDING結果。如果工作人員存在問題,我想將這些信息提供給客戶,並停止檢查任務的狀態,並終止任務。 代碼我使用任務的檢查狀態是:如何檢查是RabbitMQ從芹菜獲取任務
res = AsyncResult(task_id)
result = res.status
你應該看看芹菜Monitoring,專門研究Flower: Real-time Celery web-monitor。
我認爲你正在尋找這些功能之一:
djcelery.celery.control.inspect().ping()
djcelery.celery.control.inspect().active_queues()
結帳我的例子Django的芹菜示例項目: https://github.com/brentpayne/django-celery-example/blob/master/polls/management/commands/worker_count.py
這芹菜文件: http://docs.celeryproject.org/en/latest/userguide/workers.html#inspecting-workers