celery的介绍
celery有三个核心的概念:
- 任务的发出者(需要发邮件的一方),我们项目的代码就相当于发出者,
- 中间是一个任务队列(中间人broker),这里我们使用Redis来承担任务队列的作用
- 任务的处理者(就是帮助发邮件的这就是worker),
逻辑:
- 首先任务发出者,发出任务之后,不能直接告诉任务的处理者,要先到任务队列,
- 任务的处理者会监听任务队列,有的话就执行,
- celery本身是没有提供任务队列的功能的,需要借助一个rabbitMQ数据库,或者Redis,都是可以作为中间人的,这里我们使用Redis来承担任务队列的作用,
- 这样的设计就不会阻塞了,
安装celery,
- pip install celery
- 安装redis:pip install redis 验证redis是否安装成功,在cmd窗口输入python命令之后再输入import redis,如果没有出现模块不存在则表示安装成功。
怎么使用celery?
- 在项目目录下新建一个包,celery_tasks,新建一个文件,tasks.py,,
- 我的处理者是在虚拟机的Linux上面,
- 在这个地方启动任务,还需要把项目代码也放到上面去,
- 并且需要在虚拟机上也要安装celery,然后才能启动,
- 1,workon lq_py3(虚拟环境名称)这就是进入虚拟环境工作了,
- 2,pip freeze,查看虚拟环境下面安装了那些包
- 3,pip install celery,安装celery
- 安装django1.11 pip install django==1.11.7 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
- 启动命令,在进入项目里面,cd ~/桌面/dailyfresh/
- 然后执行:celery -A celery_tasks.tasks worker -l info
##################################