Celery在Django中的使用
celery是分布式异步任务队列,通过在Django中集成celery任务,可实现工作流的定制、异步执行I/O工作量大的任务、定时任务。下面的例子,给出了定时任务的实现过程。源码:https://github.com/qicheng20171017/poll/tree/master/mysite
1、创建一个django项目(网站):
django-admin startproject mysite
在mysite下创建poll应用
python manage.py startapp polls
2、创建后mysite的目录结构如下:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
polls/
__init__.py
apps.py
admin.py
migrations/
models.py
tests.py
views.py
3、修改mysite/mysite/settings.py中增加celery配置:
import djcelery
djcelery.setup_loader()
BROKER_URL="redis://127.0.0.1:6379/0"
CELERY_RESULT_BACKEND=BROKER_URL
CELERY_ACCEPT_CONTENT=['json']
CELERY_TASK_SERIALIZER='json'
CELERY_RESULT_SERIALIZER='json'
CELERYBEAT_SCHEDULER='djcelery.schedulers.DatabaseScheduler'
CELERY_TIMEZONE='Asia/Shanghai'
4、在mysite/mysite/下新增celery.py:
from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
os.environ.setdefault('DJANGO_SETTING