" http://docs.jinkan.org/docs/celery/" 官方中文版本
celery 介绍:
Celery组成结构
任务队列是一种跨线程、跨机器工作的一种机制
任务队列中包含任务的工作单元。有专门的工作进程持续不断的监视任务队列,并从中获得新的任务并处理
Celery通过消息进行通信,通常使用一个叫broker(中间人)来协client(任务的发出者)和worker(任务的处理者)
client发出消息到队列中,broker将队列中的信息派发给worker来处理
一个Celery系统可以包含很多的worker和broker,可增强横向扩展性和高可用性能。
Celery组成结构是生产者消费者模型的一种体现
pip install celery ==3.1.25 # 版本号可不加
pip install celery-with-redis ==3.0pip 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
def send_active_email(param_1,param_2,param_3):
print('hello ...')
time.sleep(2)
print('world ...')
# 导入异步方法
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