官方:http://www.celeryproject.org
文档:http://docs.jinkan.org/docs/celery/index.html
FAQ:http://docs.celeryproject.org/en/master/faq.html
为什么使用Celery?
基础配置
基于QQ蓝鲸平台配置,以下截取配置,qq蓝鲸这里本身不需配置任何东西。
ddefault.py
# 是否启用celery任务,等于false django就不使用celery IS_USE_CELERY = True # 本地开发的 celery 的消息队列(RabbitMQ)信息 BROKER_URL_DEV = 'amqp://guest:guest@127.0.0.1:5672/' # TOCHANGE 调用celery任务的文件路径, home_application目录下有个celery_tasks.py文件里面写异步函数就可以 CELERY_IMPORTS = ( 'home_application.celery_tasks', )
启动celery
1启动django
python manage.py runserver 127.0.0.1:8000
2启动celery工作进程
python manage.py celery --settings=settings worker -l info
3启动周期任务(使用周期任务就启用,不使用就不启用)
python manage.py celery --settings=settings celerybeat -l info
执行后台任务
增加urls
增加 (r'^async/$', 'my_async'),
celery_tasks.py 蓝鲸中定义的位置和名字,在这文件中增加方法的时候必须要重启work服务
1 @task() 2 def async_task(x, y): 3 """ 4 定义一个 celery 异步任务 5 """ 6 7 return x + y
增加方法不重启服务回报下面的错误:
view
1 from celery_tasks import async_task 2 def my_async(reqeust): 3 task_id=async_task.delay(1,2)#delay异步执行,返回结果就是一个任务id 4 print(task_id) 5 return HttpResponse("ok")
work界面结果: