Celery为Django提供后台执行以及定时执行功能。
一、安装:
1、安装依懒包:
tar xvf kombu-3.0.35.tar.gz
cd kombu-3.0.35
/usr/local/python27/bin/python setup.py install
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:
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 添加配置:
import djcelery
djcelery.setup_loader()
BROKER_URL = 'django://'
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
installed_apps添加djcelery,kombu.transport.django
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文件:
from celery import task
@task()
def add(x, y):
return x + y
四、启动进程
在manage.py中加入:
import django
django.setup()
不加的话celery执行task时会报错
python manage.py celery worker --loglevel=info
五、测试:
python manage.py shell
>>> from myapp.tasks import add
>>> add.delay(2, 2)
六、测试定时任务:
启动celerybeat:
python manage.py celery beat
在django admin后台添中任务:
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 中执行
暂时测试到这里!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。