Django 使用celery做异步任务处理
2016-10-18 16:15
791 查看
celery 分布式任务框架,处理异步的
安装
sudo apt-get/yum install rabbitmq-server(使用redis:redis-server/yum install redis)
pip install celery django-celery
运行
python manage.py makemigrations
python manage.py migrate
python manage.py runserver #启动terminal
python manage.py celery worker --loglevel=info #启动worker:
任务实例代码在iaas.cpms.cloud.tasks_demo.py
访问test函数后,页面立即返回{'code':'success'}。
在python manage.py runserver 下
result of add.deplay 119024eb-4c86-4f5c-8bf3-4da93e563723
在python manage.py celery worker --loglevel=info 下
[2016-08-25 18:22:19,321: INFO/MainProcess]
Received task: iaasms.cpms.cloud.task_demo.add[119024eb-4c86-4f5c-8bf3-4da93e563723]
[2016-08-25 18:22:19,323: WARNING/Worker-1] begin...
(10秒后......因为在add函数中:time.sleep(10))
[2016-08-25 18:22:29,342: WARNING/Worker-1] end...
[2016-08-25 18:22:29,372: INFO/MainProcess] Task iaasms.cpms.cloud.task_demo.add[119024eb-4c86-4f5c-8bf3-4da93e563723] succeeded in 10.0493727878s: 11(这个11是task:add.delay(1,10)执行后的结果,也就是函数add的返回值。)
安装
sudo apt-get/yum install rabbitmq-server(使用redis:redis-server/yum install redis)
pip install celery django-celery
运行
python manage.py makemigrations
python manage.py migrate
python manage.py runserver #启动terminal
python manage.py celery worker --loglevel=info #启动worker:
任务实例代码在iaas.cpms.cloud.tasks_demo.py
settings.py: | import djcelery djcelery.setup_loader()
......, 'djcelery', 'kombu.transport.django', ...... | ||||
tasks.py: | from celery import platforms # 开启超级管理员使用模式 platforms.C_FORCE_ROOT = True # 导入任务子模块 from iaasms.cpms.cloud.task_demo import * | ||||
task_demo.py: 在views中要调用的函数 | from celery import task import time @task() def add(x, y): print 'begin...' time.sleep(10) print 'end...' return x + y | ||||
views.py: 使用函数add时,加上.delay。 | def test(request): from iaasms.cpms.cloud.tasks import add result=add.delay(1,10) print 'result of add.deplay', result return JsonResponse({'code':'success'}) |
在python manage.py runserver 下
result of add.deplay 119024eb-4c86-4f5c-8bf3-4da93e563723
在python manage.py celery worker --loglevel=info 下
[2016-08-25 18:22:19,321: INFO/MainProcess]
Received task: iaasms.cpms.cloud.task_demo.add[119024eb-4c86-4f5c-8bf3-4da93e563723]
[2016-08-25 18:22:19,323: WARNING/Worker-1] begin...
(10秒后......因为在add函数中:time.sleep(10))
[2016-08-25 18:22:29,342: WARNING/Worker-1] end...
[2016-08-25 18:22:29,372: INFO/MainProcess] Task iaasms.cpms.cloud.task_demo.add[119024eb-4c86-4f5c-8bf3-4da93e563723] succeeded in 10.0493727878s: 11(这个11是task:add.delay(1,10)执行后的结果,也就是函数add的返回值。)
相关文章推荐
- 异步任务队列Celery在Django中的使用
- Django中使用celery完成异步任务的示例代码
- Django中如何使用django-celery完成异步任务 (2)
- Django使用Celery异步任务队列的使用
- Django 使用 Celery 实现异步任务
- Django中如何使用django-celery完成异步任务2(转)
- django下使用celery进行异步任务
- Django中如何使用django-celery完成异步任务
- jango中如何使用django-celery完成异步任务 (1)
- 在tornado中使用celery实现异步任务处理之二
- 在tornado中使用celery实现异步任务处理之一
- 异步任务利器Celery(二)在django项目中使用Celery
- Django中使用celery完成异步任务
- Django使用Celery异步任务队列
- 异步任务队列Celery在Django中的使用
- Django中如何使用django-celery完成异步任务 (1)
- 异步任务队列Celery在Django中的使用方法
- Django中如何使用django-celery完成异步任务1(转)
- Django使用Celery异步任务队列
- Python Django Celery 实现异步任务(二)使用rabbitmq 作为broker