开发者社区> 科技探索者> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Django-celery 安装及使用测试

简介:
+关注继续查看

Celery为Django提供后台执行以及定时执行功能。


一、安装:

1、安装依懒包:

1
2
3
tar xvf kombu-3.0.35.tar.gz 
cd kombu-3.0.35
/usr/local/python27/bin/python setup.py install
1
2
3
tar xvf billiard-3.3.0.23.tar.gz
cd billiard-3.3.0.23
/usr/local/python27/bin/python setup.py install

2、安装django-celery:

1
2
3
tar xvf django-celery-3.1.17.tar.gz
cd django-celery-3.1.17
/usr/local/python27/bin/python setup.py install


二、配置整合Django:

settings 添加配置:

1
2
3
4
5
import djcelery
 
djcelery.setup_loader()
BROKER_URL = 'django://'
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'

installed_apps添加djcelery,kombu.transport.django

1
2
3
4
5
6
7
8
9
10
11
12
13
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'DjangoUeditor',
    'django_jinja',
    'djcelery',
    'kombu.transport.django',
    'TestCelery',
)


三、创建task

新建App:TestCelery,在该App下新建tasks.py文件:

1
2
3
4
5
from celery import task
 
@task()
def add(x, y):
    return + y


四、启动进程

在manage.py中加入:

1
2
import django
django.setup()

不加的话celery执行task时会报错

1
python manage.py celery worker --loglevel=info


五、测试:

1
2
3
python manage.py shell    
>>> from myapp.tasks import add    
>>> add.delay(2, 2)


六、测试定时任务:

启动celerybeat:

1
python manage.py celery beat


在django admin后台添中任务:

wKioL1c1uZeCtV6jAABEmCF2xL8908.png

Name: 这一定期任务的注册名

Task (registered): 可以选择所有已经注册的task之一, 例如前面的add function

Task (custom): task的全名, 例如myapp.tasks.add, 但最好还是用以上项

Enabled: 是否开启这一定期任务

Interval: 定期任务的间隔时间, 例如每隔5分钟

Crontab: 如果希望task在某一特定时间运行, 则使用Unix中的Crontab代替interval

Arguments: 用于传参数到task中

Execution Options: 更高级的设置, 在此不详细说明, 请查看celery官方文档


celerybeat会把task发送到celery worker 中执行


暂时测试到这里!

本文转自运维笔记博客51CTO博客,原文链接http://blog.51cto.com/lihuipeng/1773158如需转载请自行联系原作者


lihuipeng

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Django中的ORM
1. 数据库的配置 Django可以配置使用sqlite3,mysql,oracle,postgresql等数据库 在一个Django项目中,默认使用的是sqlite3数据库 DATABASES = { 'default': { 'ENGINE': 'django.
949 0
Django学习(第四天:ORM&Model)
ORM,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。 Model from django.utils import timezone # Create your models here.
953 0
Django ORM模型:想说爱你不容易
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载。   使用Python的Django模型的话,一般都会用它自带的ORM(Object-relational mapping)模型。
1160 0
这篇 感觉很实用--DJANGO ORM
Django之model F/Q以及多对多操作 http://www.cnblogs.com/ccorz/p/5882400.html model之F/Q操作 F操作,使用查询条件的值 打个比方吧,有一张表,保存着公司员工的工资,公司普涨工资,如何在model中操作,这就用到了F,首先需要导入此模块: from django.
1273 0
实用型的DJANGO ORM
比较深入一点的内容,需要用时,用心看看。 URL:   https://www.sitepoint.com/doing-more-with-your-django-models/ https://www.
1010 0
作DJANGO ORM时的一些最佳实践
还是国外的正规,都在作DJANGO ORM的解藕化工作了。 外键不用,多对多,一对多,不用。   参考URL: http://scottlobdell.me/2015/01/sql-database-best-practices-django-orm/ ==========这个网站有很多D...
992 0
【转】建立一个更高级别的查询 API:正确使用Django ORM 的方式
这个就比较深入啦。。。 http://www.oschina.net/translate/higher-level-query-api-django-orm 结论: 在视图和其他高级应用中使用源生的ORM查询代码不是很好的主意。
816 0
5487
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载