django中celery简单使用的一种方法

" http://www.celeryproject.org/ "  官网英文版本

" http://docs.jinkan.org/docs/celery/"  官方中文版本

celery 介绍:
Celery组成结构
任务队列是一种跨线程、跨机器工作的一种机制
任务队列中包含任务的工作单元。有专门的工作进程持续不断的监视任务队列,并从中获得新的任务并处理
Celery通过消息进行通信,通常使用一个叫broker(中间人)来协client(任务的发出者)和worker(任务的处理者)
client发出消息到队列中,broker将队列中的信息派发给worker来处理
一个Celery系统可以包含很多的worker和broker,可增强横向扩展性和高可用性能。
Celery组成结构是生产者消费者模型的一种体现

django中celery简单使用的一种方法

pip install celery ==3.1.25   # 版本号可不加

pip install celery-with-redis ==3.0
pip install django-celery==3.1.17


==>django 安装 djcelery
1.配置settings.py : 
INSTALLED_APPS = (
 ...
 'djcelery',
}
...
    # 末尾初始化
import djcelery
djcelery.setup_loader()
BROKER_URL = 'redis://127.0.0.1:6379/0'
CELERY_IMPORTS = ('应用名称.task')




2. 在django根模块中新建一个包或者在任何一个模块中创建一个py文件定义耗时的任务(这里以包为例)

import time

from celery import task


@task    # 装饰器定义为异步方法
def send_active_email(param_1,param_2,param_3):
      print('hello ...')
       time.sleep(2)

       print('world ...')


2.5 在调用的时候
# 导入异步方法
from celery_tasks.tasks_liuqi import send_active_email
# 需要执行异步方法的时候

         send_active_email.delay(email, user_name, token)

3."重要" ==> python manage.py migrate  "迁移"
4. sudo redis-server /etc/redis/redis.conf ==> 启动redis
5. 启动worker ==> python manage.py celery worker --loglevel=info

6. 启动django ==> python manager.py runserver