Django Celery的任务状态监控
Django Celery是一个强大的异步任务队列库,通过它可以将一些耗时的任务分发给后台执行,提高系统的并发处理能力。但是,在一些长时间执行的任务中,我们也希望能够实时监控任务的状态,以便于及时处理问题。那么,如何实现Django Celery的任务状态监控呢?
一、安装模块
首先需要安装Worker状态监控模块flower:
pip install flower
二、配置
1.在Django项目的settings.py文件中加入:
INSTALLED_APPS = ( ... 'djcelery', 'flower', ) BROKER_URL = 'amqp://guest:guest@localhost:5672//' CELERYBEAT_SCHEDULER='djcelery.schedulers.DatabaseScheduler' CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend' ...
这里主要是配置Celery的Broker地址为本地,并使用django-celery的数据库调度器进行调度。
2.修改Django项目的urls.py文件:
from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^flower/', include('flower.urls')), ]
这里主要是将flower的web ui页面集成到Django项目中。
3.启动flower:
celery -A proj flower
注意:-A
参数后的proj是指当前Django项目的名称。
三、使用
1.创建一个异步任务
from __future__ import absolute_import import time from celery import Celery app = Celery('proj') # 任务队列实例 @app.task def add(x, y): # 定义任务 for i in xrange(5): time.sleep(1) return x + y
2.调用异步任务
from proj.tasks import add result = add.delay(2,2) # 异步调用任务 print "任务ID:", result.id # 输出任务ID
3.查看任务状态
打开浏览器访问http://localhost:5555
在此界面中,可以看到当前所有任务的状态,包括已完成的任务、正在执行的任务、失败的任务等。
这样就能够方便地实现Django Celery的任务状态监控了。
相关文章